需要2个单独的ADD_SHORT代码元素用于演示

时间:2016-08-11 作者:Hermants

在下面的函数中show_game_category_images_func 我得到了1-2-3-4的结果。取决于我在表中声明的内容。使用add_shortcode 我得到了所有的结果。

Question: 如何拆分此函数的结果以获得1-4个不同的短代码来使用。

示例:使用我想要作为结果的函数的2个结果

[show_game_category_images-1][show_game_category_images-2]

这有可能吗?

function show_game_category_images_func($atts) {
    $atts = shortcode_atts( array(
    \'id\' => 1,
     ), $atts );
$content = \'\';
global $wpdb;
$query  = \'select category_id, category_name, game_nr 
                            from wp_rdp_game_images 
                            where display_date = "\'.date(\'Y-m-d\', strtotime(\'-2 day\')).\'" 
                            limit  \'.get_option(\'rdp_max_categories\');

$cats = $GLOBALS[\'wpdb\']->get_results($query);

if(count($cats) > 0){

    $content .= \'<div id="rdp-cat" class="homepage_cats">\';

    foreach($cats as $cat){

        $cat->category_id;
        $cat->category_name;

        $query = \'select category_image from  wp_rdp_category_images where category_id = \'.$cat->category_id.\' order by rand() limit 1\';
        $record = $GLOBALS[\'wpdb\']->get_results($query);

        if($record){
            foreach($record as $key => $rec){   
            $content .= \'<div class="rdp-cat-image">
            <div class="rdp-cat-text"><div class="cat_name">\'.$cat->category_name.\'</div>
            <img src="\'.$upload_url.$rec->category_image.\'" ></div>
            <div class="rdp-cat-link"><a href="/spel/?cat=\'.$cat->category_id.\'&&game=\'.$cat->game_nr.\'">Start</a></div>
            </div>\';
            }

            $i++;
        } //if($record)         

    } //foreach($cats

    $content .= \'</div>\';   
} // if(count($cats
// return $content .\' \'.$atts[\'id\'];    
return $content;        
}
add_shortcode(\'show_game_category_images\', \'show_game_category_images_func\');

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

您可能需要声明arguments 对于短代码。这里是documentation, 以及您需要在代码中改进以使其工作的内容。

改变

function show_game_category_images_func()

function show_game_category_images_func($atts)
在函数顶部添加以下代码:

$a = shortcode_atts( array(
    \'id\' => \'1\',
), $atts );
现在在里面$a[\'id\'] 例如,在声明shortcode时是否将值作为参数传递[show_game_category_images id=2]

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\