我正在一个单页WordPress网站上工作。这是我第一次尝试这个。我在第五个版本上取得了不同程度的成功。我正在启动一个新版本,我删除了主题文件夹中除标题之外的所有内容。php索引。php,函数。php,页脚。php、页面模板和样式。css
当我在wp\\U Posteta中查看我的数据库时,我可以看到其中有几个页面分配了模板。我以前看过这段代码,所以我第一次尝试它,看看我能得到什么。在我的索引中。php文件。我有一个简单的标准循环。您可以看到,就在\\u post()之后,我尝试了get\\u post\\u meta。我的想法是,它将返回页面模板的所有名称。但事实上我什么都没有得到。我尝试了var\\u转储和foreach循环来查看其中的内容。我找到娜达了。我不知道为什么
作为第二个仍然相关的问题,我下面的查询不会返回数据库中的所有帖子。它只回复了2篇博文,(只有2篇)和8篇博文。它没有显示任何制作的页面。你能告诉我为什么吗?
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $template = get_post_meta($post->ID,\'_wp_page_template\',false); ?>
<?php var_dump($template); ?>
<li id="page_<?php the_title(); ?>">
<?php if(has_post_thumbnail()) {
}
the_content(\'Read the rest of this entry »\'); ?>
</li>
<?php endwhile; ?>
<?php else : ?>
//Something that happens when a post isn’t found.
<?php endif; ?>
最合适的回答,由SO网友:Milo 整理而成
只有page
帖子类型可以指定一个模板(默认帖子类型),它是您在页面属性元框中设置的自定义模板。如果你有page.php
模板文件,您的index.php
将仅用于显示post
帖子类型,因此这些帖子永远不会有_wp_page_template
元键。至于为什么你的index.php
循环,仅post
在主页和存档页上查询帖子类型。如果要在主页上获取所有帖子和页面,请使用pre_get_posts
要修改主页查询,请执行以下操作:
function wpa83038_posts_and_pages_on_home( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'post_type\', array( \'post\', \'page\' ) );
}
}
add_action( \'pre_get_posts\', \'wpa83038_posts_and_pages_on_home\' );
但我不确定这会有多大用处。似乎您希望对页面执行另一个自定义查询,并将帖子分开。