这是我遇到的困境,我的主题选项将自定义分类变量作为ID号传递,而不是slug名称。所以不是传递“新闻”而是传递“4”。
我有这个有效的硬代码:
$wp_query = new WP_Query(array('slidecat' => 'extra', 'showposts'=>$slides));
但是此代码仅适用于slug。因此,如果我用$ slider_category替换'extra',这是我在主题选项中的选择字段传递的变量,则代码不起作用。
答案 0 :(得分:1)
如果你有分类标识,那么直接查询数据库就可以更容易地找到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));
当然slu the可以应用于不同的分类法,例如category
和post_tag
可以使用名为"hello"
的slug。因此,这取决于slidecat
的实施方式以及支持的分类法。