【问题标题】:php string inside echo div tagsecho div标签内的php字符串
【发布时间】:2017-07-03 13:15:04
【问题描述】:

我正在尝试在 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>';
}

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

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

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

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    您已经在 &lt;?php ... ?&gt; 上下文中。只需构建您的字符串。例如

    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>';
    

    注意,我使用的是get_cfc_field,所以返回的是字符串,而不是直接返回echo-ed。


    另一种方法是

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

    【讨论】:

      【解决方案2】:

      脚本在传递给 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>';
      }
      
      ?>
      

      【讨论】:

      【解决方案3】:

      您不能在另一个 &lt;?php [...] ?&gt; 块中使用 &lt;?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 内容在单引号内,并且从不包含其他单引号字符(只有双引号)。然后,我用returns a stringthe_cfc_field() 函数concat 的HTML 文本,然后用更多的html 连接回来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-22
        • 2014-05-19
        • 1970-01-01
        • 1970-01-01
        • 2016-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多