如何在一个函数中添加多个简码?

How to add multiple shortcode in one functions?

我有这个 wordpress 功能

function randm() { 
  $args = array( 'post_type' => 'post',
   'orderby'=> 'rand', 'category_name' => 'Motor',
   'posts_per_page' => 1, );
  wp_reset_postdata(); 
} 
 
else { $string .= 'no posts found'; } return $string; }
 
add_shortcode('randm','randm'); 
add_filter('widget_text', 'do_shortcode');

在上面的代码中,如果我键入 [randm] 将显示“电机”类别中的 post,我想在其中添加多个类别并为每个不同的类别添加多个短代码如何做到这一点?

无论如何,您的代码似乎不完整: 如果我没理解错的话,你需要使用简码属性。

function randm($atts) {
    $args = array( 
        'post_type' => 'post', 
        'orderby'=> 'rand', 
        'category_name' => $atts['category'], 
        'posts_per_page' => 1, 
    ); 
    /// ... your code 
}

您可以将其用作简码:

[randm category="Motor"] 

如果要使用多个分类,可以把字符串炸开:

function randm($atts) {
    $args = array( 
        'post_type' => 'post', 
        'orderby'=> 'rand', 
        'category_name' => explode(', ', $atts['category']), 
        'posts_per_page' => 1, 
    ); 
    /// ... your code 
 }

并使用

[randm category="Motor, Second"]

如果您想确保存在默认值,您可以使用

function randm($atts) {
    $atts = shortcode_atts( array(
        'category' => 'Motor',
    ), $atts); 
    // Remaining code
}