php字符串里面的echo div标签

时间:2017-02-15 02:53:10

标签: php wordpress woocommerce

我试图在woocommerce的添加到购物车按钮上方添加退货政策自定义字段。我有以下功能:

<?php
add_action( 'woocommerce_single_product_summary', 'return_policy', 20 );
function return_policy() {
    echo '<div id="return-policy-wrapper">
            <?php the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); ?>
          </div>';
}

但代码验证器指出字符串中的某处存在错误。我怀疑错误是内部的单引号 <?php the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); ?>

我更改了该字符串中的单引号以获得双引号。现在字符串验证错误消失了,但函数不起作用。

它们是导致错误的单引号吗?我该如何解决?

3 个答案:

答案 0 :(得分:1)

您已经在<?php ... ?>上下文中。只需构建你的字符串。例如

printf('<div id="return-policy-wrapper">%s</div>',
        get_cfc_field('rp-info-meta', 'rp-info-custom-filed'));

echo '<div id="return-policy-wrapper">',
     get_cfc_field('rp-info-meta', 'rp-info-custom-filed'),
     '</div>';

注意,我已使用https://github.com/aaronksaunders/AngularFire2-Ionic2-Facebook代替字符串,因此返回字符串而不是echo - 直接编辑。

另一种方法是

echo '<div id="return-policy-wrapper">';
the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); // this echoes the value
echo '</div>'

答案 1 :(得分:1)

脚本位于传递给echo命令的带引号的字符串中,因此不会被视为脚本,而是与字符串的其余部分一起回显。

这可能会按预期工作:

<?php
add_action('woocommerce_single_product_summary', 'return_policy', 20);
function return_policy() {
    $info = get_cfc_field('rp-info-meta', 'rp-info-custom-field');
    echo '<div id="return-policy-wrapper">';
    echo $info;
    echo '</div>';
}

?>

答案 2 :(得分:1)

您无法在另一个<?php阻止内使用<?php [...] ?>

您的代码应该类似于:

<?php
add_action( 'woocommerce_single_product_summary', 'return_policy', 20 );
function return_policy() {
    echo '<div id="return-policy-wrapper">' . the_cfc_field('rp-info-meta', 'rp-info-custom-filed') . '</div>';
}

如果你仔细看,HTML内容在单引号内,并且从不包含其他单引号字符(只有双引号)。然后,我concat使用the_cfc_field()函数returns a stringnot in boto3 HTML文本,然后使用更多html连接回来。