【问题标题】:Syntax Error when using Wordpress do_shortcode in between an HTML string在 HTML 字符串之间使用 Wordpress do_shortcode 时出现语法错误
【发布时间】:2021-01-25 12:15:10
【问题描述】:

我遇到了“第 7 行上出现意外 T_ECHO”的语法错误,我检查了 PHP parse/syntax errors; and how to solve them 线程,试图理解并解决该问题。

但我似乎无法以我有限的 PHP 知识找到解决此问题的方法。 下面是我想在我的 Woocommerce/Wordpress 网站上使用的代码 sn-p。 我正在使用Display a custom div block for woocommerce out of stock product variations 答案代码的更改版本,它可以完美运行。

add_filter( 'woocommerce_available_variation', 'custom_outofstock_variation_addition', 10, 3 );
function custom_outofstock_variation_addition( $data, $product, $variation ) {
    if( $variation->is_on_backorder() ){
        $data['availability_html'] .= '<table class="variations mto-cont" cellspacing="0">
            <tbody>
                <tr>
                    <td class="made-to-order"><a> 'echo do_shortcode('[nm_lightbox title="Made to Order ????" content_image_id="5110"]');'</a></td>
                </tr>
            </tbody>
        </table>';
    }
    return $data;
}

所以我希望让 Wordpress 在 &lt;td class="made-to-order"&gt;&lt;a&gt; 和 &lt;/a&gt;&lt;/td&gt; 之间做一个简码。

应如何重写此代码以使其正常工作?

【问题讨论】:

  • 当您已经在字符串连接上下文中时,您不能使用echo。相反,您需要在此处继续使用字符串连接。 '…&lt;a&gt; '.do_shortcode(…).'&lt;/a&gt;…'

标签: php wordpress string woocommerce shortcode


【解决方案1】:

您需要在 HTML 字符串中连接 do_shortcode() 函数,而不是像 那样在其中使用 echo(因为您在最后返回该字符串) :

add_filter( 'woocommerce_available_variation', 'custom_outofstock_variation_addition', 10, 3 );
function custom_outofstock_variation_addition( $data, $product, $variation ) {
    if( $variation->is_on_backorder() ){
        $data['availability_html'] .= '<table class="variations mto-cont" cellspacing="0">
            <tbody>
                <tr>
                    <td class="made-to-order"><a> ' . do_shortcode('[nm_lightbox title="Made to Order …" content_image_id="5110"]') . '</a></td>
                </tr>
            </tbody>
        </table>';
    }
    return $data;
}

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    相关资源
    最近更新 更多