Saya mencoba membuat fungsi yang memungkinkan saya untuk mengubah judul kotak meta yang sudah ada (yaitu, mengubah judul Kotak Meta 'Penulis' menjadi 'Tim', dll.)
Saya tidak ingin menggunakan JS atau harus menghapus kotak meta asli dan menambahkannya kembali.
Saya mulai dengan yang berikut sesuai utas lain yang mencantumkan kode seperti ini:
// hook to the 'add_meta_boxes' action
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles($post_type, $post)) {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
}
Saya terjebak pada bagian untuk "menelusuri array dan mengubah judul yang Anda inginkan".
Apa cara terbaik untuk mencapai ini? Menggunakan foreach untuk mengulang? Atau skenario Beralih / Kasus? Saya cukup baru dalam hal ini, adakah yang bisa memberikan contoh bagaimana mencapai ini?
Pembaruan: Contoh Stephen Harris tidak berfungsi untuk Core Meta (terima kasih!):
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles() {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
$wp_meta_boxes['post']['normal']['core']['authordiv']['title']= 'Team Member';
}
Pembaruan: Diperbaiki Untuk Meta Kustom
Agar ini berfungsi dengan meta khusus Anda, ubah add_action Anda sebagai berikut sehingga kode perubahan judul Anda diaktifkan setelah kotak meta ditambahkan:
add_action('add_meta_boxes', 'change_meta_box_titles', 999);
$wp_meta_boxes['post']['side']['core']['projectinfo']['title']= 'New Title';
tapi itu tidak berhasil, apakah saya melewatkan sesuatu di sini?echo '<pre>'; print_r($wp_meta_boxes); echo '</pre>'; wp_die('');
Setelah Anda mengubah judul untuk melihat apa yang salah. Dugaan saya adalah bahwa itu bukan 'inti': DSaya tahu ini adalah pertanyaan lama, tetapi ada hook filter untuk ini. Anda akan menambahkan ke plugin tema
functions.php
atau fungsionalitas khusus Anda fungsi yang dikaitkanpost_type_labels_{$post_type}
Ambil contoh bahwa kita memiliki jenis posting khusus yang dipanggil
band
dan kami ingin mengubah label gambar unggulan menjadi "Band Photo". Fungsi akan terlihat seperti ini:ref: https://developer.wordpress.org/reference/hooks/post_type_labels_post_type/
sumber
Afaik, taruhan terbaik Anda adalah mengaitkan fungsi ke pengait tepat sebelum pembuatan kotak meta:
sumber
Oke ... Ini sedikit berantakan, tapi saya pikir itu pintar. Pada dasarnya, Anda hanya menggunakan fungsi bahasa bawaan untuk mengubah apa yang Anda suka. Selama Anda tahu kata atau kata-kata asli yang ingin Anda ubah dan kata-kata itu telah dipanggil dalam kode dengan sesuatu seperti
__('text in here')
, Anda dapat mengubahnya menjadi apa pun yang Anda suka.Saya pernah menggunakannya untuk mengubah kotak meta "Kutipan" ke nama yang berbeda (bersama dengan deskripsi di dalamnya) karena tema saya menggunakannya untuk potongan teks yang sangat kecil. Lihat:
Ternyata, saya bukan satu-satunya yang memikirkan hal ini. Mengherankan. Berikut ini adalah artikel yang membahas ide yang sama , dengan metode berbeda menggunakan gettext.
sumber
Sejak WordPress 4.4 arg $ screen dapat berupa array yang sangat menyederhanakan penambahan massal atau perubahan kotak meta.
Kode berikut mengubah judul kotak meta “Pembuat” menjadi “Editor” di halaman, posting, lampiran, dan semua jenis posting khusus, tidak peduli berapa banyak yang ditambahkan atau ketika ditambahkan ke situs Anda.
sumber
Ini agak membingungkan, tetapi bagi siapa pun yang membutuhkan solusi CSS sederhana, gunakan ini:
Cukup ganti metabox-id Anda dengan milik Anda. :)
(catatan: saya biasanya menambahkan admin.css melalui functions.php, di situlah saya mengontrol beberapa gaya admin wp)
sumber