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

我希望按照以下顺序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 = %s", $id
        )
    );
}

这将返回false或找到的帖子的ID。如果有很多, 它将返回第一篇文章的ID。

然后使用ID, 你可以检索网址。

} else if (($id = is_featured_image($post->ID)) && $id !== false) {
    $url = get_permalink($id);
}

来源:

https://www.srcmini02.com/65108.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?