0

这是我的困境,我的主题选项将自定义分类变量作为 ID 号传递,而不是 slug 名称。所以不是传递“新闻”,而是传递“4”。

我有这个有效的硬代码:

$wp_query = new WP_Query(array('slidecat' => 'extra', 'showposts'=>$slides));

但是这段代码只适用于蛞蝓。因此,如果我用 $slider_category 替换“额外”,这是我在主题选项中的选择字段传递的变量,代码不起作用。

4

1 回答 1

1

如果您有分类 ID,那么直接查询数据库以获取 slug 会更容易:

function get_term_by_taxonomy_id($term_taxonomy_id) {
    global $wpdb;
    $taxonomy = $wpdb->get_row( $wpdb->prepare( 
        "SELECT * FROM $wpdb->term_taxonomy wta
            INNER JOIN $wpdb->terms wt ON (wta.term_id = wt.term_id)
            WHERE wta.term_taxonomy_id = %d", $term_taxonomy_id 
    ) );

    return $taxonomy;
}

$cat = get_term_by_taxonomy_id($slider_category);
// at this point you should check if $cat is null (in case of an error)
$wp_query = new WP_Query(array('slidecat' => $cat->slug, 'showposts'=>$slides));

当然,slug 可以应用于不同的分类法,例如可以由 acategory和 apost_tag与名为 slug 的 slug应用"hello"。所以这取决于如何slidecat实施以及支持哪些分类法。

于 2012-10-16T09:42:45.947 回答