如何获取包含特定帖子的网站地图的URL?

时间:2021-08-19 作者:cristianuibar

我正在寻找一种方法;“检测”;一篇文章位于哪个网站地图上,但我找不到任何解决方案,也没有任何SEO插件或缓存插件提供任何方式或包装函数来返回这个问题?

本质上,我正在寻找一个函数,它接受$post\\u id或$post对象,并可以返回该帖子所在的站点地图URL或一组站点地图(如果它显示在多个站点地图中)。

非常感谢您的帮助。

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

我使用这个简单的查询实现了它

<?php

$chunks=array_chunk(
  get_posts([
    \'fields\'=>\'ids\',
    \'posts_per_page\'=>-1,
    \'post_type\'=>[$post->post_type],
    \'orderby\'=>\'ID\',
    \'order\'=>\'ASC\'
  ]),
  wp_sitemaps_get_max_urls(\'post\')
);

foreach($chunks as $key => $chunk) {
  if(!in_array($post->ID,$chunk)) continue;

  var_dump(get_sitemap_url(\'posts\',$post->post_type,$key + 1));
  break;
}