Image Shortcode from ACF ID

时间:2019-11-07 作者:iamonstage

我想创建一个快捷码,用于显示ACF自定义字段中的图像,该字段当前的返回格式设置为Image ID. 短代码需要接受post\\u id,以便从特定页面获取字段。

因此,短代码是:

[acf_featured_item post_id="88"]
我知道有一个可用的ACF快捷码,但已经有另一个位置依赖于ID的返回格式。因此我无法更改此位置。

我当前的代码是:

function acf_featured_item_shortcode( $atts ) {
// Attributes
$atts = shortcode_atts(
    array(
        \'post_id\' => \'\',
    ),
    $atts
);
$image = get_field(\'featured_item\', $post_id );
$size = \'medium\'; // (thumbnail, medium, large, full or custom size)
if( $image ) {
$output = wp_get_attachment_image( $image, $size, "", array( "class" => "mx-auto d-block" ));
} 
return $output;
}
add_shortcode( \'acf_featured_item\', \'acf_featured_item_shortcode\' );
但这只在您访问该id的页面时起作用。如何使此短代码在任何带有post\\u id输入的页面上起作用?

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

因为你忘了用$atts[\'post_id\'] 请查找以下代码。

function acf_featured_item_shortcode( $atts ) {
    // Attributes
    $atts = shortcode_atts(
        array(
            \'post_id\' => \'\',
        ),
        $atts
    );
    $post_id = $atts[\'post_id\'];
    $image = get_field(\'featured_item\', $post_id );
    $size = \'medium\'; // (thumbnail, medium, large, full or custom size)
    if( $image ) {
        $output = wp_get_attachment_image( $image, $size, "", array( "class" => "mx-auto d-block" ));
    } 
    return $output;
}
add_shortcode( \'acf_featured_item\', \'acf_featured_item_shortcode\' );

相关推荐

获取AJAX调用的ShortCode属性

我想给我的插件传递一个可以访问文件的文件夹,这样我就可以运行多个设置了不同文件夹的实例。我的第一个想法是用文件夹名添加一个属性。因为我使用的是AJAX,所以我需要始终访问我的短代码的属性。我找到了这样一种解决方案,将属性传递给JS,然后在发生AJAX调用时将其传回:https://wordpress.stackexchange.com/a/184219我试过了,但没用。有没有更优雅的方法?以下是我的PHP文件的重要部分:add_action(\'init\', \'wporg_shortcodes_ini