php 如何排除文章和页面!网站MapYOAST SEO

kdfy810k  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(71)

我在Yoast SEO中生成了一个站点Map,但它仍然包括草稿帖子。
我也检查了所有的选项,但我看不到任何可以让我能够排除后和网页!=发布自sitemap
我已经尝试了所有的选项,我已经激活了自由计划,这样做自动

yvfmudvl

yvfmudvl1#

默认情况下,Yoast SEO只包括站点Map中处于“已发布”状态的帖子和页面。但是,如果您想手动控制站点Map中包含的内容,Yoast SEO提供了各种过滤器,可用于以编程方式排除特定的帖子,页面或自定义帖子类型。
以下是如何通过ID排除特定帖子或页面的示例:

function sitemap_exclude_post( $value, $post_ID ) {
    $exclude = array( 1, 2, 3 ); // The IDs of the posts or pages to exclude

    if ( in_array( $post_ID, $exclude ) ) {
        return true;
    }

    return $value;
}
add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', 'sitemap_exclude_post', 10, 2 );

字符串
在上面的示例中,您可以将1、2、3替换为要排除的帖子或页面的ID。
要排除所有未处于“已发布”状态的帖子或页面,您可以使用以下过滤器:

function sitemap_exclude_not_published( $url, $post_ID ) {
    $post = get_post( $post_ID );

    if ( 'publish' != $post->post_status ) {
        return false;
    }

    return $url;
}
add_filter( 'wpseo_xml_sitemap_img_src', 'sitemap_exclude_not_published', 10, 2 );


此过滤器将从站点Map中删除任何帖子或页面,其中帖子状态不是“发布”。
记住将这些过滤器添加到主题的functions.php文件中,或者更好的是,添加一个自定义插件,这样即使您切换主题,您的更改也会保持不变。
请注意,在编辑任何代码之前,您应该备份您的网站或在您的网站的临时版本上尝试这些更改,因为不正确的代码可能会使您的网站脱机。如果你不确定自己是否能做出这些改变,你可能需要考虑雇佣一个WordPress开发人员。

相关问题