我发现有几件事可能导致你的问题。
首先,您使用自定义页面模板来显示博客文章索引,而不是使用home.php
由模板层次结构指定。这可能是个问题,因为<!--more-->
标记在单个页面上不起作用,而且由于您使用默认查询(下面有更多内容)进行了一些奇怪的操作,因此全局$more
其中<!--more-->
依赖可能没有按照您的预期进行设置。
将静态页面正确配置为博客文章索引因此,第一步是将静态页面正确配置为博客文章索引:
确保您选择的静态页面被选择为Posts Page 在里面Dashboard -> Settings -> Reading
将自定义页面模板重命名为home.php
移除Template Name: Blog Template
phpDoc标题中的标记(假设:您已经选择了一个静态页面Front Page)
不要踩踏主查询
如果仅此无法解决您的问题,那么下一个要调查的问题是您踩踏默认查询的方式
query_posts()
.
Do not ever use query_posts()
, 为了一切,永远。
如果要将博客帖子索引设置为显示给定数量的帖子,则filter the $query
via pre_get_posts
, 像这样:
function wpse76634_filter_pre_get_posts( $query ) {
if ( is_home() && $query->is_main_query() ) {
$query->set( \'posts_per_page\', \'5\' );
}
}
add_action( \'pre_get_posts\', \'wpse76634_filter_pre_get_posts\' );
那就别打电话给
query_posts()
在模板文件中。
正确使用<!--more-->
如果这不能解决您的问题,那么下一步就是检查
<!--more-->
标记自身。
确保标签准确<!--more-->
, 之间没有空格<!--
和more
或介于more
和-->
.
模板之外的问题如果仍然不能解决问题,您可能在某个地方有代码,或者functions.php
或者在插件中,这会改变<!--more-->
标签
要测试与插件相关的问题,请停用所有插件,并切换到默认主题(当前为:212),并验证<!--more-->
标签工作正常。如果工作正常,请逐个重新启用插件。如果<!--more-->
标签在所有插件都处于活动状态时仍能正常工作,那么问题就出在您的主题中的某个地方。
下一步是排除模板文件。如果已遵循上述步骤,请重命名home.php
像home.php.old
, 所以WordPress回到index.php
呈现博客文章索引。然后,验证<!--more-->
标签工作正常。
如果确实如此,那么问题是您的模板。如果没有,那么问题就出在functions.php
.