2016-07-24 13 views
0

Я пытался создать короткий код для пользовательских терминов таксономии динамически. Но это не так. Предположим, если есть термин под названием «wordpress», тогда я должен иметь возможность запрашивать все сообщения, связанные с этим термином, с помощью короткого кода. Чтобы быть более точным, предположим, что существует таксономия под названием «событие», и в рамках этой таксономии существует несколько терминов. Итак, я пытался запрашивать сообщения под каждым термином через короткий код каждого из этих терминов.WordPress shortcodes для терминов

Вот что я пробовал:

function wordpress_recent_post($atts, $content) { 
    $a = shortcode_atts(array(
    'cat' => '', 
), $atts); 
    $args = array(
    'posts_per_page' => 1, 
    'offset' => 0, 
    'category_name' => $a['cat'], 
    'orderby' => 'post_date', 
    'order' => 'DESC', 
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'ignore_sticky_posts' => true, 
); 
    $recent_posts = new WP_Query($args); 
    ob_start(); 
    if (! $recent_posts-> have_posts()) { 
    return 'No Posts Found for ' . $a['cat']; 
    } 
    while ($recent_posts->have_posts()) { 
    $recent_posts->the_post(); 
    the_title('<h2>', '</h2>'); 
    if ('' != $a['cat']) { 
     $href = '/category/' . $a['cat']; 
    } else { 
     $href = '/blog'; 
    } 
    echo "<p><a href='$href'>Read More" . ucwords($a['cat']) . '</a></p>'; 
    } 
    wp_reset_query(); 
    return ob_get_clean(); 
} 
add_shortcode('wordpress_recent_post', array($this, 'wordpress_recent_post')); 

И тогда я использовал это, чтобы вызвать сообщения от термина называется «особенности», чей идентификатор «183» (предположим) [wordpress_recent_post кот = «183» ]

Любая помощь будет действительно очень заметной.

Спасибо!

ответ

1

Добавочный термин slug сделал это. Должен быть пропущен не id, например: [wordpress_recent_post cat = "features"]