使用快捷码按ID属性显示帖子

时间:2021-01-30 作者:dragoweb

我正在尝试创建一个快捷代码,使用ID属性显示包含帖子内容(缩略图、标题和摘录)的横幅。我的目标是能够使用像[postbanner id=123] 按其ID显示任何帖子。

下面是我的代码(在function.php子主题中):

function post_banner_shortcode($atts) {
    
    $atts = shortcode_atts( array(
        \'id\' => \'\'
    ), $atts );
    
    $post_id = $atts[\'id\'];
    
    $HTML  = \'<div class="postbanner">\';
    $HTML .= \'<div class="pb-thumb">\' . get_the_post_thumbnail($post_id, \'medium\') . \'</div>\';
    $HTML .= \'<div class="pb-ttl-txt">\';
    $HTML .= \'<h4>\' . get_the_title($post_id) . \'</h4>\';
    $HTML .= \'<p>\' . get_the_excerpt($post_id) . \'</p>\';
    $HTML .= \'</div>\';
    $HTML .= \'</div>\';
    
    return $html; 
}   
add_shortcode( \'postbanner\', \'post_banner_shortcode\' );
实际上,这段代码没有返回任何内容,我也不明白为什么。我错过了一些东西。我还是PHP的新手,所以这就是为什么我需要一些帮助:)

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

尝试$HTML 而不是$html 基于Linux的系统区分大小写。。。

function post_banner_shortcode($atts) {
    
    $atts = shortcode_atts( array(
        \'id\' => \'\'
    ), $atts );
    
    $post_id = $atts[\'id\'];
    
    $HTML  = \'<div class="postbanner">\';
    $HTML .= \'<div class="pb-thumb">\' . get_the_post_thumbnail($post_id, \'medium\') . \'</div>\';
    $HTML .= \'<div class="pb-ttl-txt">\';
    $HTML .= \'<h4>\' . get_the_title($post_id) . \'</h4>\';
    $HTML .= \'<p>\' . get_the_excerpt($post_id) . \'</p>\';
    $HTML .= \'</div>\';
    $HTML .= \'</div>\';
    
    return $HTML; 
}   
add_shortcode( \'postbanner\', \'post_banner_shortcode\' );