Tarikh Mula, Tarikh Akhir, Metabox untuk Jenis-jenis Pos Kiriman Acara

Coretan oleh IsItWP


Adakah anda ingin menambahkan tiga metabox pada jenis catatan khusus acara anda? Walaupun mungkin ada pemalam untuk ini, kami telah membuat potongan kod cepat yang boleh anda gunakan untuk menambahkan tarikh mula, tarikh akhir, dan metaboks lokasi untuk jenis catatan khusus acara.

Arahan:

Yang perlu anda lakukan ialah menambahkan kod ini ke fail functions.php tema anda atau dalam pemalam khusus laman web:

fungsi ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Tarikh dan Masa Mula’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ => ‘_start’));
add_meta_box (‘ept_event_date_end’, ‘Tarikh dan Masa Tamat’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_end’));
add_meta_box (‘ept_event_location’, ‘Lokasi Acara’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_end’));
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

fungsi ept_event_date ($ post, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
global $ post, $ wp_locale;

// Gunakan bukan untuk pengesahan
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘cap waktu’);
$ bulan = get_post_meta ($ pos->ID, $ metabox_id. ‘_month’, benar);

jika (kosong ($ bulan)) {
$ bulan = gmdate (‘m’, $ time_adj);
}

$ hari = get_post_meta ($ pos->ID, $ metabox_id. ‘_day’, benar);

jika (kosong ($ hari)) {
$ hari = gmdate (‘d’, $ time_adj);
}

$ tahun = get_post_meta ($ pos->ID, $ metabox_id. ‘_year’, benar);

jika (kosong ($ tahun)) {
$ tahun = gmdate (‘Y’, $ time_adj);
}

$ hour = get_post_meta ($ pos->ID, $ metabox_id. ‘_hour’, benar);

jika (kosong ($ jam)) {
$ hour = gmdate (‘H’, $ time_adj);
}

$ min = get_post_meta ($ pos->ID, $ metabox_id. ‘_minute’, benar);

jika (kosong ($ min)) {
$ min = ’00’;
}

$ bulan_s = ”;
untuk ($ i = 1; $ i < 13; $ i = $ i +1) {
$ bulan_s = "\ t \ t \ t" . ”. $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ bulan_s. = ”;

gema $ month_s;
gema ”;
gema ‘@’;
gema ‘:’;
gema ”;

}

fungsi ept_event_location () {
jawatan $ global;
// Gunakan bukan untuk pengesahan
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// HTML metabox
$ event_location = get_post_meta ($ pos->ID, ‘_event_location’, benar);
echo ‘Lokasi:’;
gema ”;
}

// Simpan Data Metabox

fungsi ep_eventposts_save_meta ($ post_id, $ post) {

jika (ditakrifkan (‘DOING_AUTOSAVE’) && MELAKUKAN_AUTOSAVE)
kembali;

jika (! isset ($ _POST [‘ep_eventposts_nonce’]))
kembali;

jika (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
kembali;

// Adakah pengguna dibenarkan mengedit siaran atau halaman?
jika (! current_user_can (‘edit_post’, $ post->ID ) )
kembali;

// OK, kami disahkan: kami perlu mencari dan menyimpan data
// Kami akan memasukkannya ke dalam array agar lebih mudah untuk dilancarkan

$ metabox_ids = array (‘_start’, ‘_end’);

foreach ($ metabox_ids sebagai kunci $) {
$ events_meta [kunci $. ‘_month’] = $ _POST [kunci $. ‘_month’];
$ events_meta [kunci $. ‘_day’] = $ _POST [kunci $. ‘_day’];
jika ($ _ POST [kunci $. ‘_hour’]<10) {
$ events_meta [kunci $. ‘_hour’] = ‘0’. $ _ POST [kunci $. ‘_jam’];
} lain {
$ events_meta [kunci $. ‘_hour’] = $ _POST [kunci $. ‘_jam’];
}
$ events_meta [kunci $. ‘_year’] = $ _POST [$ kunci. ‘_tahun’];
$ events_meta [kunci $. ‘_hour’] = $ _POST [kunci $. ‘_jam’];
$ events_meta [kunci $. ‘_minute’] = $ _POST [kunci $. ‘_minute’];
$ events_meta [kunci $. ‘_eventtimestamp’] = $ events_meta [kunci $. ‘_tahun’]. $ events_meta [kunci $. ‘_bulan’]. $ events_meta [kunci $. ‘_day’]. $ events_meta [kunci $. ‘_jam’] . $ events_meta [kunci $. ‘_minute’];
}

// Tambahkan nilai $ events_meta sebagai medan tersuai

foreach ($ events_meta sebagai $ key => $ value) {// Kitarkan susunan $ events_meta!
sekiranya ($ pos->post_type == ‘semakan’) kembali; // Jangan simpan data tersuai dua kali
$ value = implode (‘,’, (array) $ value); // Sekiranya nilai $ adalah tatasusunan, jadikannya CSV (tidak mungkin)
jika (get_post_meta ($ pos->ID, kunci $, SALAH)) {// Sekiranya bidang tersuai sudah mempunyai nilai
kemas kini_post_meta ($ pos->ID, kunci $, nilai $);
} lain {// Sekiranya bidang khusus tidak mempunyai nilai
add_post_meta ($ pos->ID, kunci $, nilai $);
}
jika (! $ value) delete_post_meta ($ post->ID, kunci $); // Padamkan jika kosong
}

}

add_action (‘save_post’, ‘ep_eventposts_save_meta’, 1, 2);

/ **
* Pembantu untuk memaparkan tarikh di hujung depan
* /

// Dapatkan Singkatan Bulan

functionposttype_get_the_month_abbr ($ bulan) {
$ wp_locale global;
untuk ($ i = 1; $ i < 13; $ i = $ i +1) {
jika ($ i == $ bulan)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
pulangkan $ monthabbr;
}

// Paparkan tarikh

functionposttype_get_the_event_date () {
jawatan $ global;
$ eventdate = ”;
$ bulan = get_post_meta ($ pos->ID, ‘_month’, benar);
$ eventdate = eventposttype_get_the_month_abbr ($ bulan);
$ eventdate. = ”. get_post_meta ($ pos->ID, ‘_day’, benar). ‘,’;
$ eventdate. = ”. get_post_meta ($ pos->ID, ‘_year’, benar);
$ eventdate. = ‘at’. get_post_meta ($ pos->ID, ‘_hour’, benar);
$ eventdate. = ‘:’. get_post_meta ($ pos->ID, ‘_minute’, benar);
gema $ eventdate;
}

Nota: Sekiranya ini adalah kali pertama anda menambah coretan kod di WordPress, sila rujuk panduan kami di cara menyalin / menampal coretan kod dengan betul di WordPress, jadi anda tidak melanggar laman web anda secara tidak sengaja.

Sekiranya anda menyukai coretan kod ini, sila pertimbangkan untuk menyemak artikel kami yang lain di laman web seperti: 15 alat dan plugin pemasaran kandungan terbaik dan 50+ tema WordPress responsif terbaik untuk membuat laman web siap bergerak.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me