【问题标题】:How to pass Wordpress the_title(); tag through Gravity Form shortcode如何通过 Wordpress the_title();通过重力形式短代码标记
【发布时间】:2014-01-27 15:14:00
【问题描述】:

我正在尝试使用 WP 帖子标题动态填充 Gravity 表单中的不可见字段。现在我有:

<?php echo do_shortcode('[gravityform id="9" field_values="trip_of_interest=the_title();"]'); ?>

但是,这最终给了我一个“the_title();”的值,但并没有给我实际的标题本身。

编辑:现在正在正确传递该字段:

<?php echo do_shortcode('[gravityform id="9" title="false" field_values="trip_of_interest=' . the_title('','',FALSE) . '"]'); ?>

但是,如果帖子标题包含撇号,则传递的值只是该撇号之前的所有内容,而不是完整的标题。

【问题讨论】:

    标签: php wordpress shortcode gravity


    【解决方案1】:

    您不能在这样的字符串中调用 PHP 函数。需要使用串联。

    您还需要将可选的第三个参数设置为FALSE 以返回而不是回显标题。

    echo do_shortcode('[gravityform id="9" field_values="trip_of_interest=' . the_title('','',FALSE) . '"]'); ?>
    

    【讨论】:

    • 我已经有一段时间没有使用WordPree了,但是the_title不会自动回显到浏览器吗?因此,函数不应该是 get_the_title() 吗?
    • @LiamWiltshire 你是对的,the_title() 默认回显所以这个答案应该使用get_the_title() 代替(它只返回但不回显标题)。
    • @LiamWiltshire 是的,你是对的。我更新了我的答案,有一个可选的第三个参数返回而不是回显标题。
    • 虽然他只是编辑以包含防止它回显的最终参数,所以按原样回答。
    • @jszobody 现在可以正确传递该字段。但是,如果标题中有一个单引号,它只会传递该引号之前的字符。例如,如果标题是“约翰的书”,它只是传递“约翰”
    【解决方案2】:

    我确实将此作为评论添加到 jszobody 的评论中,但为了清楚起见,我想我会在此处添加它。

    WordPress 中的 the_title() 函数将标题回显到浏览器 - 这并不是您真正想要的功能。

    有一个单独的函数 get_the_title() 将返回标题以用作另一个字符串的一部分,因此所需的代码是:

    <?php echo do_shortcode('[gravityform id="9" field_values="trip_of_interest=' . get_the_title() . '"]'); ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2010-12-16
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多