Return URL 从 Wordpress 中的 functions.php 查询到 post 简码

Return URL query into post shortcode from functions.php in Wordpress

我能够获取 return 字符串 'evs' 内联 post [当我将其插入 return ] 但无法 return post 拇指 url,使用来自 functions.php

的相同简码

我做错了什么:

    function thumburl_func( $atts ){
        
        $url = get_the_post_thumbnail_url('large');
//      $eva = 'evs';
        return strval($url);
    }
    add_shortcode( 'thumburl', 'thumburl_func' );

多年来一直坚持这个 - 请节省我的一周!

你快到了,但是你用错了get_the_post_thumbnail_url

你想要的图像大小是函数中的second参数,第一个参数是post id。尽管 post id 是可选的,但如果要传递大小,则需要在第一个参数中包含一些内容。

如果您在 Wordpress“循环”中并且设置了全局 $post,您可以简单地传入 null 例如

$url = get_the_post_thumbnail_url(null, 'large');

但是,由于这是针对短代码的,因此最好的选择是显式传入 post id - 这意味着短代码甚至可以在循环之外工作(例如在小部件中)。

function thumburl_func( $atts ){
    // 1. get the post id of the current post
    $post_id = get_queried_object_id();

    // 2. pass the post is into get_the_post_thumbnail_url
    $url = get_the_post_thumbnail_url($post_id, 'large');

    return $url;
}
add_shortcode( 'thumburl', 'thumburl_func' );