修正Yoast SEO中分页链接的link rel=“Next”

时间:2020-07-09 作者:Mark Mayo

我有一个正在运行yoast seo的网站,如来源所示:

<title>Redacted</title>
<meta name="description" content="Redacted" />
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<link rel="canonical" href="Redacted" />
<link rel="next" href="Redacted.com/page/2/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Redacted" />
<meta property="og:description" content="Redacted" />
<meta property="og:url" content="Redacted" />
<meta property="og:site_name" content="Redacted" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@Redacted" />
<!-- / Yoast SEO plugin. -->
然而,在我有的地方,它实际上应该是/索引。php/page/2。没关系,我去修一下。

然而,就我的一生而言,我无法确定它的位置。在Yoast插件工具中找不到它。我尝试在所有插件中搜索文本(出现的内容太多而没有用处)。

我尝试了yoast在线文档,但他们主要讨论了如何不再使用元标记,以及canonical和next的功能,而不是如何或在何处设置它们。

任何关于如何补救的建议都将不胜感激。

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

在当前版本的Yoast中,此链接由presenters/rel-next-presenter.php, 其中包含此筛选器:

    public function present() {
        $output = parent::present();
    
        if ( ! empty( $output ) ) {
          /**
           * Filter: \'wpseo_next_rel_link\' - Allow changing link rel output by Yoast SEO.
           *
           * @api string $unsigned The full `<link` element.
           */
          return \\apply_filters( \'wpseo_next_rel_link\', $output );
        }
    
        return \'\';
    }
因此,我建议通过在functions.php, 例如:

    add_filter( \'wpseo_next_rel_link\', \'custom_change_wpseo_next\' );

    function custom_change_wpseo_next( $oldLink ) {

        $new_link = \'https://example.com/index.php/page/2\';
        $link = \'<link rel="next" href="\'. $new_link .\'" />\' . PHP_EOL;
        
        return $link;

    }
这样行吗?

相关推荐