Tampilkan semua tag pos pada layar edit / sidebox posting

8

Saya mencari cara untuk menampilkan semua tag posting pada layar edit post / tag sidebox di bagian admin WordPress. Secara default WordPress menunjukkan 45 tag yang paling sering digunakan, tetapi saya perlu cara untuk membuat daftar semua tag di sana atau setidaknya meningkatkan batas ini.

Saya menemukan pertanyaan serupa di sini Menampilkan semua tag di admin -> edit posting . Tetapi disarankan untuk mengedit / memodifikasi file inti WordPress yang bukan yang saya inginkan. Karena meningkatkan WordPress akan menjadi masalah besar.

Saya juga tidak dapat menemukan apa pun di pencarian Google. Begitu juga ada cara untuk mendaftar semua atau lebih dari 45 tag pada halaman edit posting.

Rona Robert
sumber

Jawaban:

9

Saya akan mengatakan cara termudah untuk melakukannya adalah menggunakan get_terms_argsfilter dan membatalkan numberbatas jika konteksnya benar (permintaan AJAX untuk mendapatkan tag cloud):

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' );

Catatan: Di kotak edit tautan masih akan membaca "Pilih dari tag yang paling sering digunakan", meskipun kami sekarang menampilkan semuanya.

Sunting: Seperti yang disarankan @bonger, Anda dapat menentukan jenis posting dari referer:

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';
}
TheDeadMedic
sumber
2
+1. Akan lebih baik jika dapat dijalankan hanya untuk jenis posting tertentu, tetapi saya khawatir tidak begitu mudah. Mengenai "Pilih dari tag yang paling sering digunakan" , dimungkinkan untuk menggunakan gettextfilter untuk mengubahnya.
gmazzap
@ GM Ya, kami dapat mengubah teks. Tapi saya baik-baik saja dengan "Pilih dari tag yang paling sering digunakan". Meskipun saya bertanya-tanya mengapa kita tidak bisa memeriksa di post typesini? Apakah ini dieksekusi sebelum yang lainnya.
Robert rona
1
Tidak ada cara untuk menentukan tipe posting dalam konteks yang dijalankan oleh filter. Anda bisa melihat jenis tulisan mana yang dilampirkan taksonomi, tetapi itu hanya berguna jika itu satu - satunya jenis posting. Satu-satunya pilihan lain adalah menghapus post_tags_meta_boxhandler default dan menggantinya dengan Anda sendiri.
TheDeadMedic
Padahal Anda bisa menggunakannya $_SERVER['HTTP_REFERER']untuk mengetahui post_typeapakah Anda benar-benar menginginkannya.
bonger
1
Anda bisa menggunakannya wp_get_referer(). Perlu diingat bahwa ia kembali falsejuga dalam kasus jika permintaan saat ini dan sebelumnya sama (siapa pun yang punya ide: bertepuk tangan lambat).
kaiser
0

Tambahan untuk jawaban TheDeadMedic, untuk menampilkan SEMUA tag:

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

Hanya menambahkan beberapa info dasar yang relevan:

Ketika mengatur pengaturan taksonomi untuk 'hierarchical'=>trueitu akan menggunakan kotak sisi format kategori dan akan menampilkan semua istilah secara default.

pengguna315338
sumber