我在Yoast SEO中生成了一个站点Map,但它仍然包括草稿帖子。我也检查了所有的选项,但我看不到任何可以让我能够排除后和网页!=发布自sitemap我已经尝试了所有的选项,我已经激活了自由计划,这样做自动
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开发人员。
1条答案
按热度按时间yvfmudvl1#
默认情况下,Yoast SEO只包括站点Map中处于“已发布”状态的帖子和页面。但是,如果您想手动控制站点Map中包含的内容,Yoast SEO提供了各种过滤器,可用于以编程方式排除特定的帖子,页面或自定义帖子类型。
以下是如何通过ID排除特定帖子或页面的示例:
字符串
在上面的示例中,您可以将1、2、3替换为要排除的帖子或页面的ID。
要排除所有未处于“已发布”状态的帖子或页面,您可以使用以下过滤器:
型
此过滤器将从站点Map中删除任何帖子或页面,其中帖子状态不是“发布”。
记住将这些过滤器添加到主题的functions.php文件中,或者更好的是,添加一个自定义插件,这样即使您切换主题,您的更改也会保持不变。
请注意,在编辑任何代码之前,您应该备份您的网站或在您的网站的临时版本上尝试这些更改,因为不正确的代码可能会使您的网站脱机。如果你不确定自己是否能做出这些改变,你可能需要考虑雇佣一个WordPress开发人员。