如何将基于标签的相关文章转换为类别WordPress

时间:2019-05-12 16:54:51

标签: wordpress shortcode wordpress-shortcode

我目前正在构建自定义简码,以根据标签调用相关帖子。 简码可以正常工作。 现在,我想将基于标签的相关帖子变成与类别相关。

我尝试将“标签”更改为“类别”,但没有解决问题。

以下是基于标签的相关帖子的工作示例:

function seniberpikir_bacajuga( $atts ) {
    extract(shortcode_atts(array(
        'limit' => '4',
    ), $atts));

    global $wpdb, $post, $table_prefix;

    if ($post->ID) {
        $retval = '<div class="bacajuga-konten"><h5 class="bacajuga-title">Baca <span style="color:#0c6;">Juga</span>:</h3><ul class="td-arrow-list">';
        // Get tags
        $tags = wp_get_post_tags($post->ID);
        $tagsarray = array();
        foreach ($tags as $tag) {
            $tagsarray[] = $tag->term_id;
        }
        $tagslist = implode(',', $tagsarray);

        // Do the query
        $q = "SELECT p.*, count(tr.object_id) as count
            FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id  = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
                AND p.post_status = 'publish'
                AND p.post_date_gmt < NOW()
            GROUP BY tr.object_id
            ORDER BY RAND()
            LIMIT $limit;";

        $related = $wpdb->get_results($q);
        if ( $related ) {
            foreach($related as $r) {
                $retval .= '
    <li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>
';
            }
        } else {
            $retval .= '
    <li>Tidak ada artikel terkait.</li>';
        }
        $retval .= '</ul></div>';
        return $retval;
    }
    return;
}
add_shortcode('bacajuga', 'seniberpikir_bacajuga');

现在,我想根据类别将其转换为相关帖子,并使用短代码[bacajuga]称呼它们。

任何帮助将不胜感激。

提前谢谢你们!

0 个答案:

没有答案