在附件页面获取固定链接以获取特色图片

我希望按照以下顺序301将Wordpress中的附件页面重定向到父帖子或主页:

  1. 检查附件是否有父项并重定向到该帖子的URL
  2. 检查图片是否用作特色图片并重定向到帖子网址
  3. 将附件页面重定向到网站主页
第一点和第三点不是问题, 但是我发现很难解决第二点。
【在附件页面获取固定链接以获取特色图片】这应该是相当琐碎的, 就像该代码的其余部分一样, 但是, 如果将图像用作页面中的特色图像, 则似乎没有张贴父集(如果我错了, 请纠正我)。
到目前为止, 我的代码如下(如果使用image.php, 则位于顶部):
if (!empty($post-> post_parent)) { // checks the parent is set and not 0$url = get_permalink($post-> post_parent); } else if ( 'some code here' ) { // Check if the image is a featured image$url = get_permalink($some_variable_that_gets_the_url_of_the_page); } else {$url = home_url(); }wp_redirect($url, 301 ); exit();

注意:Yoast不再这样做, 并且我不想使用插件。无论如何, 我还没有看到可以执行第2点中所述功能的插件。
#1你可以创建一个接受媒体ID的函数, 并检查数据库中是否有包含媒体ID的_thumbnail_id。
function is_featured_image ($id) { global $wpdb; return $wpdb-> get_var( $wpdb-> prepare( "SELECT post_id FROM {$wpdb-> prefix}postmeta WHERE meta_key = '_thumbnail_id' AND meta_value = http://www.srcmini.com/%s", $id ) ); }

这将返回false或找到的帖子的ID。如果有很多, 它将返回第一篇文章的ID。
然后使用ID, 你可以检索网址。
} else if (($id = is_featured_image($post-> ID)) & & $id !== false) { $url = get_permalink($id); }

    推荐阅读