WordPress的大多数新模板都存在一个主要问题,需要您将主页设置为Your Latest Posts
.
这是为了使许多伟大的主题功能能够工作。
问题是,wordpress核心和yoast seo也将首页(即使不是博客页面)视为页面实体。
那么这意味着什么呢?
你有一个主页www.mysite.com
如果您访问页面并查看您看到的源代码rel="next" href="hxxps://www.mysite.com/page/2/"
如果你真的点击了/page/2链接,你会看到它会把你带回到首页,除非这次你查看它现在的源代码rel="prev" href="hxxps://www.mysite.com/"
和rel="next" href="hxxps://www.mysite.com/page/3/"
如果单击链接/page/3/
现在再次检查您将看到的源代码rel="prev" href="hxxps://www.mysite.com/page/2/"
和rel="next" href="hxxps://www.mysite.com/page/4/"
这种情况持续不断,最终用户永远看不到,但对搜索引擎来说非常糟糕,尤其是谷歌,因为谷歌可能会将其视为重复内容。
我已经就这个问题与Yoast进行了数周的支持会谈,他们坚称这是一个主题问题,并指责主题开发人员没有正确使用wp\\U排队。我认为这在很大程度上是正确的,但这也意味着绝大多数最流行的wordpress主题都有同样的问题。
目前唯一的解决方法是进入wordpress的阅读设置,并将首页设置为static page
和您的帖子页面your posts page
. 很容易,但你失去了一个非常好的模板的所有功能,你只花了一周的时间定制,甚至花了很多钱。
因此,虽然这可能是一个解决方案,但它并不是真正的解决方案,而且似乎大多数主题开发人员都不知道如何解决这个问题。
我以前的主题Tempera有这个问题,我从GraphPaperPress
然后还尝试了一个最流行的主题Zerif
他们都有这个问题。
我在函数中尝试了各种代码片段。php和我可以让rel=next和rel=prev不显示在首页上,但它也不能在其他每一个页面上工作,比如/blog/page where you want这些元链接,以及所有类别页面上,这些页面也需要rel=next和rel=prev链接,以便告诉搜索引擎继续深入爬行。
我可以切换到静态首页,得到一个外观不错的首页,类似于主题动态首页,但功能丢失太多,不得不满足于更少,这相当令人沮丧,尤其是现在有这么多美妙的ajaxy和parallaxy功能。
那么,实际上是否有一个简单的函数可以将其仅从主页中删除,而将其显示在/blog//category1//category2这样的页面上呢/
这里有一些我已经尝试过了,但我只是没有得到正确的条件陈述,或者我做了一些其他错误的事情,但现在诊断这个问题太长了,我想我肯定是疯了。
function wpseo_disable_rel_next_home( $link ) {
if ( is_home() ) {
return false;
}
}
add_filter( \'wpseo_next_rel_link\', \'wpseo_disable_rel_next_home\' );
以及
function genesis () {
if ( !is_home() || !function_exists( \'genesis\' ) )
$this->adjacent_rel_links();
}
以及
if ( is_front_page() && is_home() )
{
remove_action( \'wp_head\', \'adjacent_posts_rel_link_wp_head\', 10, 0 );
remove_action(‘wp_head’, ‘cor_rel_next_prev_pagination’);
}
希望有人能解开这个谜。任何想要测试这个的人都可以下载Zerif主题,并确保也安装了Yoast。使用他们的动态首页系统,然后为单独的博客列表页面创建博客页面。