这是我的困境,我的主题选项将自定义分类变量作为 ID 号传递,而不是 slug 名称。所以不是传递“新闻”,而是传递“4”。
我有这个有效的硬代码:
$wp_query = new WP_Query(array('slidecat' => 'extra', 'showposts'=>$slides));
但是这段代码只适用于蛞蝓。因此,如果我用 $slider_category 替换“额外”,这是我在主题选项中的选择字段传递的变量,代码不起作用。
这是我的困境,我的主题选项将自定义分类变量作为 ID 号传递,而不是 slug 名称。所以不是传递“新闻”,而是传递“4”。
我有这个有效的硬代码:
$wp_query = new WP_Query(array('slidecat' => 'extra', 'showposts'=>$slides));
但是这段代码只适用于蛞蝓。因此,如果我用 $slider_category 替换“额外”,这是我在主题选项中的选择字段传递的变量,代码不起作用。
如果您有分类 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
实施以及支持哪些分类法。