問題描述

我正在尋找一種方式來顯示 WordPress 管理部分中的發佈編輯屏幕/標籤邊框上的所有帖子標籤。默認情況下 WordPress 顯示 45 個最常用的標籤,但我需要一種方法來列出所有標籤,或至少增加此限制。

我在這裏發現了類似的問題 Showing all tags in admin -> edit post 。但它建議編輯/修改 WordPress 核心文件,這不是我真正想要的。因為升級 WordPress 會是一個巨大的問題。

我在 Google 搜索中找不到任何東西。那麼有什麼辦法可以在帖子編輯頁面上列出全部或者多於 45 個標籤。

最佳解決方案

我會説最簡單的方法是使用 get_terms_args 過濾器並取消設置 number 限制,如果上下文是正確的 (AJAX 請求獲取標籤雲):

function wpse_64058_all_tags ( $args ) {
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' )
        unset( $args['number'] );
    return $args;
}

add_filter( 'get_terms_args', 'wpse_64058_all_tags' );

注意:在編輯框中,鏈接仍將顯示 「從最常用的標籤中選擇」,即使我們正在顯示所有標籤。

編輯:正如 @bonger 所建議的,您可以從引用者中確定帖子類型:

if ( $qs = parse_url( wp_get_referer(), PHP_URL_QUERY ) ) {
    parse_str( $qs, $args );

    if ( ! empty( $args['post_type'] ) )
        $post_type = $args['post_type'];
    elseif ( ! empty( $args['post'] ) )
        $post_type = get_post_type( $args['post'] );
    else
        $post_type = 'post';
}

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。