Wordpress - 循环问题内部的短代码 - IE,Chrome,Safari

时间:2015-06-30 03:09:56

标签: wordpress

  

$ loop = new WP_Query(array(' post_type' =>' special_offers',>' posts_per_page' => -1));

     

while($ loop-> have_posts()):$ loop-> the_post();

     

echo do_shortcode(' [my_special_offer_item]');

     

ENDWHILE;

     

wp_reset_query();`

我的短代码在IE,Chrome和&amp ;;的while循环中没有递增。 Safari,因此它们都是重复的......但在FF内部它完美无缺。

1 个答案:

答案 0 :(得分:1)

很抱歉怀疑你,但我确实很难相信do_shortcode根据浏览器的不同而有所不同。由于这是PHP代码,因此它在到达浏览器之前执行,虽然PHP代码实际上可能会根据用户代理执行不同的操作,但实际情况并非如此。

但是,如果短代码本身存在任何渲染问题,您可能会在浏览器中看到不同的内容,但这更接近模板/主题本身而不是代码。

至于do_shortcode,请注意,Codex文档(https://codex.wordpress.org/Function_Reference/do_shortcode)和源代码(https://core.trac.wordpress.org/browser/tags/4.2.2/src/wp-includes/shortcodes.php#L189)似乎都是以任何方式自动递增。

也许您应该在其中注入动态变量,根据帖子进行不同的短代码搜索?如果是这样,检查变量字符串插值或只是连接这是一个例子(https://wordpress.org/support/topic/how-to-use-echo-do_shortcode-with-dynamic-variable

<?php echo do_shortcode('[walkscore ws_wsid="example" ws_address="'.get_post_meta($post->ID, 'pyre_full_address', true).'"]'); ?>

我希望这会有所帮助。