代码中的wordpress帖子/页面内容

时间:2012-04-04 15:01:02

标签: php wordpress shortcode

我正在尝试将帖子/页面插入我的一个主题文件中,它不会显示短代码或php

我在wordpress admin-paned中创建了一个名为home的页面,并在我的代码中插入以下内容:

<div id="home_page"> <!-- echos the content from the page "home" id:43 -->
            <?php $home_id = 43;
            $home_page = get_page( $home_id );
            ?>  
            <?php echo $home_page->post_content; ?>
    </div> <!-- end #home_page -->

和我在页面工作中没有的短代码。 我安装了一个php in post or page,并尝试使用php,它不起作用。

当我插入

echo do_shortcode('[youtube_sc url=http://www.youtube.com/watch?v=Db3XGpt6nNU]');

直接进入它运作的代码。

有谁知道这发生了吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

我在wordpress.stackexchange.com

得到了答案

我引用:

  

您需要应用过滤器the_content例如:

     

<?php echo apply_filters('the_content',$home_page->post_content); ?>   此外,您不需要youtube的自定义短代码,只需将URL放在内容中(但不是超链接),它将在运行时换出youtube播放器。由于oembed,无需插件或额外代码。

谢谢你Tom J Nowell

答案 1 :(得分:0)

$ home_page-&gt; post_content值是存储在数据库中的确切帖子内容。回应这一点并不能让你的任何短代码都有机会运行。

你应该使用“WordPress循环”来显示内容,因为这会设置允许你使用模板标签,如the_title()和the_content() - 这将调用处理函数的短代码和其他功能,如wpautop()表示“按摩”发布内容以供输出。

如果您不想使用循环,则可以使用输出内容 echo do_shortcode($ home_page-&gt; post_content);

这将通过短代码处理器运行发布内容,使短代码有机会运行。

有关WordPress如何“按摩”发布内容的更多信息,请查看此处:http://codex.wordpress.org/How_WordPress_Processes_Post_Content