将常规页面内容添加到页面模板

时间:2011-11-01 作者:Zach

如果我正在创建一个页面模板,比如说一个用于我创建的推荐自定义帖子类型的模板,我想我已经知道了,如果我在推荐页面中执行以下操作。php:

    <?php get_template_part(\'loop\', \'page\'); ?>
    <?php get_template_part(\'loop\', \'testimonials\'); ?>
然后,它将输出页面本身的内容,然后进入推荐循环以获取最新推荐的列表,等等。

对于从WP设置调用为“Posts页”的页面,我在执行相同操作时遇到问题。假设在“博客”页面(WordPress页面)的顶部,我想要一些博客的介绍文字,上面写着:“欢迎来到博客。请查看下面的新帖子。”如何实现,而不是将其硬编码到模板中?我是否在考虑根据是否选择了自定义页面模板来显示实际页面内容?谢谢

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

对于从WP设置调用为“Posts页”的页面,我在执行相同操作时遇到问题。假设在“博客”页面(WordPress页面)的顶部,我想要一些博客的介绍文字,上面写着:“欢迎来到博客。请查看下面的新帖子。”如何实现,而不是将其硬编码到模板中?

首先,根据WordPress Template Hierarchy, 此上下文中使用的模板文件按优先顺序为:home.php, 和index.php. 对自定义页面模板所做的任何操作都不会对WordPress用于呈现博客帖子索引的内容产生任何影响。

您最好的解决方案是将此文本硬编码为home.php, 循环外部。您可以将此文本放入模板零件文件中,并通过get_template_part( $foobar ) 如果你真的想这么做,但诚实地这么做没有任何意义。

顺便问一下:您对将特定于模板的文本硬编码到模板文件中有什么反感?

p、 这里是a more current version of the Template Hierarchy. (我很快会将其添加到抄本中。)

EDIT

我正在研究一个主题,它将被分发/提供给几十个客户,如果不是数百个不同的客户的话。我希望客户能够控制博客区域内是否有任何介绍文本。

我真的不认为您可以输出$post->post_content 对于用作page_for_posts. 也许您可以使用自定义查询,例如使用get_page():

<?php
$page_for_posts = get_page( get_option( \'page_for_posts\' ) );
$page_for_posts_content = $page_for_posts->post_content;
echo apply_filters( \'the_content\', $page_for_posts_content );
?>
或者,我会建议两种方法之一:

创建Theme Option 要定义此文本/内容,请将模板文件的该部分设置为dynamic sidebar, 并允许用户添加一个小部件,例如文本小部件,他们可以在其中定义此文本/内容

结束