我爲媒體附件創建了一個名爲'attach_cats'的自定義分類標準。分類中的每個術語都有自定義術語元數據,其中包含'term_order'鍵和整數元值。我在「edit-tag.php」頁面添加了一個自定義列,顯示「term_order」的值。按自定義元數據對自定義分類標準進行排序(pre_get_terms)
現在我想命令'orderby'的術語'term_order'的值。我做這一切的時候了「edit.php post_type =頁?」具有以下功能:
add_action('pre_get_posts', 'sort_by_meta_key');
function sort_by_meta_key($query){
global $pagenow;
if(is_admin()
&& 'edit.php' == $pagenow
&& isset($_GET['post_type']) && $_GET['post_type']=='gallery'){
$query->set('meta_key', 'gallery_pos');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
}
但是,當我嘗試用「術語」來做到這一點,而不是「上崗」使用「pre_get_terms」它不起作用。這裏是我有:
add_action('pre_get_terms', 'term_sort_order');
function term_sort_order($query){
global $pagenow;
if(is_admin()
&& 'edit-tags.php' == $pagenow
&& isset($_GET['post_type']) && $_GET['post_type']=='attachment'){
$query->set('meta_key', 'term_order');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
}
// THIS RETURNS: Fatal error: Call to undefined method WP_Term_Query::set() ......
任何幫助將不勝感激。
你必須對pre_get_terms有一個動作,然後在上面的回調函數中進行嘗試。爲我工作。解決方案來了這個鏈接的評論:https://core.trac.wordpress.org/ticket/34996 eherman24的評論 –
感謝您的答覆,即使已經6個月,我還沒有做從那時起該項目的其他任何東西(這是我正在構建的一個個人插件)......我明天會回到它並嘗試這個......謝謝。 – Jeremy