0

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

我在 wordpress 管理面板中创建了一个名为 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]');

直接进入它工作的代码。

有谁知道发生这种情况?

谢谢你。

4

2 回答 2

1

我在wordpress.stackexchange.com上得到了答案

我引用:

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

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

谢谢汤姆·J·诺威尔

于 2012-04-05T09:20:57.880 回答
0

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

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

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

这将通过简码处理器运行帖子内容,让简码有机会运行。

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

于 2012-04-05T03:03:44.790 回答