Rumah >Tutorial CMS >WordTekan >Pengenalan kepada meta dan wp_term istilah WordPress

Pengenalan kepada meta dan wp_term istilah WordPress

Jennifer Aniston
Jennifer Anistonasal
2025-02-15 09:45:11152semak imbas

Pengenalan kepada meta dan wp_term istilah WordPress

Takeaways Key

    Sejak WordPress 4.4, istilah kini objek, menjadikannya lebih mudah untuk menambah, mengeluarkan, dan mengemas kini metadata. Sebelum ini, penjimatan metadata untuk taksonomi adalah proses yang kompleks yang memerlukan metadata jangka panjang sebagai medan di dalam jadual WP_OPTIONS.
  • untuk bekerja dengan meta terma, fungsi add_term_meta, update_term_meta, dan delete_term_meta digunakan. Fungsi -fungsi ini, digabungkan dengan elemen UI baru, membolehkan penjimatan dan pengemaskinian metadata baru untuk terma.
  • metadata terma boleh digunakan untuk melanjutkan syarat, menyediakan fungsi yang unik. Contohnya termasuk menambahkan imej spanduk ke bahagian atas atau menyediakan metadata untuk memaparkan terma secara berbeza, seperti memuatkan fail templat baru berdasarkan istilah yang dipaparkan.
  • Kelas WP_TERM dalam WordPress adalah perwakilan berorientasikan objek istilah. Ia menyediakan kaedah untuk mendapatkan dan memanipulasi data jangka panjang, termasuk meta jangka panjang. Kelas ini boleh digunakan untuk bekerja dengan meta istilah dengan membuat contoh kelas untuk istilah tertentu, dan kemudian menggunakan kaedah yang disediakan oleh kelas untuk mengambil, menambah, mengemas kini, atau memadam data meta istilah.
  • Di WordPress, anda boleh menyimpan metadata dengan mudah untuk jawatan, halaman dan jenis kandungan tersuai yang lain, namun menyimpan metadata untuk digunakan dengan taksonomi anda yang digunakan untuk menjadi proses yang terlalu kompleks (saya juga menulis artikel sebelumnya tentangnya di sini!).

Untuk mendapatkan semuanya berfungsi, anda perlu menyimpan metadata istilah anda sebagai medan di dalam jadual WP_OPTION terma atau hanya beberapa taksonomi yang disesuaikan.

Walau bagaimanapun, sejak WordPress 4.4 dan seterusnya, istilah kini objek, sama seperti jawatan, halaman dan jenis kandungan tersuai. Perubahan ini menjadikannya lebih mudah untuk menambah, membuang dan mengemas kini metadata anda.

backstory dengan istilah meta

Masyarakat telah menolak cara mudah untuk mengawal metadata jangka panjang sejak kembali ke WordPress 2.8. Sudah menjadi proses perlahan, tetapi akhirnya istilah telah direka semula dari bawah sehingga menggunakan struktur kelas. Ini ditambah dengan beberapa perubahan yang berbeza dalam WordPress 4.4 bermakna istilah dalam taksonomi (seperti 'tag', 'kategori' atau adat) kini boleh mempunyai meta mereka sendiri dengan mudah diberikan kepada mereka.

manipulasi metadata cara lama

Sebelum WordPress 4.4 tidak ada cara yang jelas untuk menyelamatkan metadata dengan mudah untuk item jangka panjang, ini adalah batasan yang melekat pada istilah dari bagaimana ia dibina. Sekiranya anda memperluaskan taksonomi atau istilah, anda perlu menyimpan data anda secara langsung sebagai pilihan tapak menggunakan update_option. Ini tidak sesuai (kerana ia berantakan jadual pilihan).

Saya telah menulis tentang memperluaskan taksonomi sebelum ini, namun asas -asasnya adalah ketika anda sudah bersedia untuk menyelamatkan metadata anda, anda akan memanggil fungsi yang kelihatan seperti ini:

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');

Dalam contoh di atas, kita melaksanakan fungsi yang dilampirkan pada cangkuk create_category (yang mencetuskan apabila kita membuat istilah kategori baru). Ini akan mencari nilai kami dan selepas sanitizing akan menyelamatkannya sebagai pilihan. Walaupun ini berfungsi, ia tidak begitu cantik.

Menambah, mengemas kini dan mengeluarkan meta istilah

Untuk bekerja dengan meta terma anda akan menggunakan fungsi add_term_meta, update_term_meta dan delete_term_meta. Fungsi ini apabila digabungkan dengan elemen UI baru akan membolehkan anda menyimpan dan mengemas kini metadata baru untuk terma anda.

Menambah istilah meta

Menambah metadata untuk istilah melibatkan fungsi add_term_meta. Anda perlu menentukan tiga parameter dengan pilihan keempat.

  • $ term_id - id istilah yang anda ingin simpan metadata ini ke
  • $ meta_key - Nama utama metadata. Inilah cara anda merujuk data
  • $ meta_value - data itu sendiri (ingat untuk sanitize)
  • $ unik (pilihan) - Jika kunci metadata harus unik. Secara lalai ini ditetapkan kepada palsu dan bermakna bahawa jika kunci lain mempunyai nama yang sama, fungsi itu akan mengatasinya. Tetapkan ini menjadi benar untuk memastikan keunikan.

Sebagai contoh, bayangkan bahawa untuk setiap istilah dalam taksonomi kategori kami, kami ingin memberikan sekeping metadata baru berdasarkan berapa banyak jawatan yang diberikan kepada kategori ini. Dengan WordPress 4.4 kita boleh melengkung melalui semua terma dan simpan metadata baru ini (untuk digunakan kemudian dalam tema atau plugin kami).

function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');

Membaca istilah meta

kita boleh membaca meta istilah yang disimpan dengan menggunakan fungsi get_term_meta. Fungsi ini berfungsi dengan cara yang sama dengan fungsi get_post_meta yang digunakan untuk mendapatkan metadata dari jawatan. Untuk menggunakan fungsi ini perlu menentukan satu parameter wajib, dengan dua parameter pilihan yang tersedia.

    $ term_id - ID istilah untuk mengambil metadata dari
  • $ kekunci (pilihan) - satu kunci yang ditentukan yang anda mahu kembali. Jika tidak ditentukan maka semua metadata dikembalikan.
  • $ single (pilihan) - Jika nilai tunggal akan dikembalikan atau pasangan kunci atau nilai. Lalai kepada satu nilai.
Mari kita lihat senario lain di mana anda mungkin mendapati ini berguna.

Pertimbangkan situasi di mana kita sudah mempunyai istilah meta yang disimpan untuk setiap terma kami dalam taksonomi kategori kami. Data yang disimpan ini mengandungi URL ke imej yang harus dipaparkan apabila kita melihat istilah. Kami mahu memaparkan imej ini sebagai spanduk di bawah keterangan atau tajuk terma kami, tetapi di atas penyenaraian jawatan kami.

//given a term, collect its saved image to be displayed
function display_term_meta_image($term_id, $term_taxonomy){

    //get supplied term
    $term = get_term($term_id, $term_taxonomy); 
    if($term){

        $term_image_id = get_term_meta($term_id, 'term_image_id', true);
        if($term_image_id){
            //get the medium image size for display
            $term_image = wp_get_attachment_image_src($term_image_id, 'medium', false);
            echo '<img . $term_image[0] . '" title="' . $term->name . ' image"/>';
        }  
    }
}
Sekarang di dalam fail template Kategori.php kami atau lain -lain, kami boleh mengubahsuai fungsi di mana data terma kami dipaparkan.

Dalam situasi saya dengan dua puluh empat belas saya mengedit fail kategori.php dan memanggil fungsi baru kami selepas paparan Maklumat Huraian Terma.

//get the current object (term)
$term_obj = get_queried_object();
//display meta data image for term
if(function_exists('display_term_meta_image')){
    display_term_meta_image($term_obj->term_id, $term_obj->taxonomy);
}
ini akan memaparkan foto kami tepat di bawah keterangan seperti ini:

Pengenalan kepada meta dan wp_term istilah WordPress

Menghapus istilah meta

kita boleh mengeluarkan metadata istilah sama seperti yang kita boleh untuk jawatan. Apabila kita menggunakan fungsi delete_term_meta kita perlu membekalkan dua parameter wajib dengan pilihan ketiga jika kita memerlukan.

    $ term_id - ID istilah untuk berfungsi.
  • $ meta_key - Kunci meta yang akan dikeluarkan dari istilah.
  • $ meta_value (pilihan) - Hanya padamkan metadata jika nilai sepadan dengan nilai ini. Gunakan ini apabila anda hanya mahu data ini dikeluarkan apabila ia sepadan dengan nilai set.
Sekali lagi mari kita lihat senario di mana anda mungkin menggunakannya. Bayangkan separuh jalan anda melalui projek besar dan anda telah menyimpan beberapa keping data meta untuk setiap tempoh kategori. Anda telah mendapati bahawa beberapa data ini yang anda tidak lagi perlukan sehingga anda mungkin harus membersihkannya supaya ia tidak merosakkan pangkalan data anda.

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');
Fungsi ini akan melalui dan mengeluarkan sebarang metadata tambahan yang tidak kami tentukan dalam pembolehubah $ dibenarkan_term_keys kami, memotong ruang sia -sia dalam pangkalan data (berguna untuk apabila kami mempunyai puluhan entri metadata yang kami tidak perlukan lagi).

keserasian ke belakang dengan WordPress 4.3 dan lebih tua

Jika anda benar -benar berminat bergerak ke hadapan dengan fungsi meta baru ini tetapi ingin menutup diri anda terhadap versi yang lebih lama, anda boleh membuat beberapa fungsi bersyarat untuk memastikan semuanya berfungsi.

kita mulakan dengan memanggil function_exists untuk memastikan fungsi add_term_meta baru ditakrifkan. Ini hanya akan berlaku untuk WordPress 4.4 dan lebih baru. Sekiranya kami mempunyai sokongan, kami menggunakan fungsi add_term_meta mudah untuk memberikan metadata kepada istilah kami.
function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');

Jika kita tidak mempunyai sokongan, kita ambil objek istilah itu sendiri (oleh ID jangka panjang) dan dari itu kita mengekstrak data term_taxonomy $ dan menggunakannya untuk membina nilai kunci akhir kita. Oleh kerana kita menyimpan ke dalam jadual pilihan kita perlu memastikan kunci adalah unik, kita melakukan ini dengan menambahkan nama taksonomi, istilah ID dan akhirnya kunci istilah menjadi satu pembolehubah. Kita mesti memastikan kunci tidak lebih daripada 64 aksara panjang dan jika demikian memotongnya. Sebaik sahaja kami telah melakukan semua ini, kami boleh memanggil fungsi tambahan kami untuk menyimpan nilai kami.

seperti yang anda lihat, ini mendapat sedikit lama, tetapi anda mendapat fleksibiliti tambahan untuk menyokong versi WordPress yang lebih tua dan lebih baru.

membungkus semuanya

Menggunakan fungsi meta baru ini membolehkan anda lebih mudah memanjangkan syarat anda untuk menyediakan fungsi yang unik. Sebagai contoh, anda mungkin ingin menambah imej spanduk ke bahagian atas terma anda atau memberikan metadata supaya anda boleh memaparkan istilah anda secara berbeza (seperti memuatkan fail templat baru berdasarkan istilah yang dipaparkan).

dengan fleksibiliti dan kemudahan fungsi meta istilah baru, anda boleh mula melaksanakannya dalam projek baru anda hari ini!

Soalan Lazim (Soalan Lazim) Mengenai Meta Istilah WordPress

Apakah meta istilah WordPress?

Meta istilah WordPress adalah ciri yang membolehkan anda menyimpan metadata tersuai untuk istilah di laman WordPress anda. Metadata ini boleh menjadi apa -apa dari deskripsi tambahan, imej, warna, atau maklumat lain yang anda ingin kaitkan dengan istilah. Ia adalah alat yang berkuasa yang dapat meningkatkan fungsi dan pengalaman pengguna laman web anda. ) fungsi. Fungsi ini mengambil tiga parameter yang diperlukan: istilah ID, kunci meta (nama medan meta), dan nilai meta. Secara pilihan, anda juga boleh menentukan sama ada kunci meta harus unik.

Bagaimana saya boleh mengambil data meta jangka panjang dalam WordPress?

. Fungsi ini memerlukan istilah ID dan kunci medan meta yang anda mahu dapatkan. Ia mengembalikan nilai medan meta untuk istilah yang ditentukan. Fungsi ini memerlukan istilah ID, kunci meta, dan nilai meta baru. Sekiranya kekunci meta tidak wujud untuk istilah itu, ia akan ditambah.

Bagaimana saya boleh memadam meta istilah dalam wordpress?

. Fungsi ini memerlukan istilah ID dan kunci meta. Ia memadamkan medan meta yang ditentukan untuk istilah yang diberikan. Ia menyediakan kaedah untuk mendapatkan dan memanipulasi data jangka panjang, termasuk meta jangka panjang. dengan membuat contoh kelas untuk istilah tertentu, dan kemudian menggunakan kaedah yang disediakan oleh kelas untuk mengambil, menambah, mengemas kini, atau memadam data meta istilah. WordPress?

Meta istilah dalam WordPress boleh digunakan untuk pelbagai tujuan, seperti menambah maklumat tambahan kepada kategori atau tag, mewujudkan bidang tersuai untuk istilah, meningkatkan fungsi carian, dan banyak lagi. Bolehkah saya menggunakan meta terma dengan taksonomi tersuai di WordPress?

Ya, anda boleh menggunakan meta istilah dengan taksonomi tersuai di WordPress. Istilah fungsi meta berfungsi dengan mana -mana taksonomi, termasuk yang tersuai. Menguruskan meta istilah di WordPress. Plugin ini menyediakan antara muka yang mesra pengguna untuk menambah, mengemas kini, dan memadam meta istilah, menjadikannya lebih mudah bagi mereka yang tidak selesa dengan pengekodan.

Atas ialah kandungan terperinci Pengenalan kepada meta dan wp_term istilah WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn