Tipi di post personalizzati per data di inizio, data di fine, Metabox per eventi

Frammenti di IsItWP


Vuoi aggiungere tre metabox ai tuoi tipi di post personalizzati per eventi? Sebbene sia probabilmente disponibile un plug-in per questo, abbiamo creato uno snippet di codice rapido che puoi utilizzare per aggiungere la data di inizio, la data di fine e la metabox della posizione per i tipi di post personalizzati degli eventi.

Istruzioni:

Tutto quello che devi fare è aggiungere questo codice al file Functions.php del tuo tema o in un plugin specifico del sito:

funzione ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Data e ora di inizio’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ = => ‘_inizio’) );
add_meta_box (‘ept_event_date_end’, ‘End Date and Time’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ = =>’_fine’) );
add_meta_box (‘ept_event_location’, ‘Event Location’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ = =>’_fine’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

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

// Usa nonce per la verifica
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘timestamp’);
$ mese = get_post_meta ($ post->ID, $ metabox_id. ‘_month’, true);

if (vuoto ($ mese)) {
$ mese = gmdate (‘m’, $ time_adj);
}

$ day = get_post_meta ($ post->ID, $ metabox_id. ‘_day’, true);

if (vuoto ($ day)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ year = get_post_meta ($ post->ID, $ metabox_id. ‘_year’, true);

if (vuoto ($ year)) {
$ year = gmdate (‘Y’, $ time_adj);
}

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

if (vuoto ($ hour)) {
$ hour = gmdate (‘H’, $ time_adj);
}

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

if (vuoto ($ min)) {
$ min = ’00’;
}

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

echo $ month_s;
eco ”;
eco ‘ @ ‘;
eco ‘:’;
eco ”;

}

funzione ept_event_location () {
$ post globale;
// Usa nonce per la verifica
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// Il metabox HTML
$ event_location = get_post_meta ($ post->ID, ‘_event_location’, true);
echo ‘Posizione:’;
eco ”;
}

// Salva i dati Metabox

funzione ep_eventposts_save_meta ($ post_id, $ post) {

if (definito (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
ritorno;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
ritorno;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
ritorno;

// L’utente è autorizzato a modificare il post o la pagina?
if (! current_user_can (‘edit_post’, $ post->ID))
ritorno;

// OK, siamo autenticati: dobbiamo trovare e salvare i dati
// Lo inseriremo in un array per rendere più semplice il loop

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

foreach ($ metabox_ids come $ chiave) {
$ events_meta [chiave $. ‘_month’] = $ _POST [chiave $. ‘_mese’];
$ events_meta [chiave $. ‘_day’] = $ _POST [chiave $. ‘_giorno’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [chiave $. ‘_hour’] = ‘0’. $ _ POST [tasto $. ‘_ora’];
} altro {
$ events_meta [chiave $. ‘_hour’] = $ _POST [chiave $. ‘_ora’];
}
$ events_meta [chiave $. ‘_year’] = $ _POST [chiave $. ‘_anno’];
$ events_meta [chiave $. ‘_hour’] = $ _POST [chiave $. ‘_ora’];
$ events_meta [chiave $. ‘_minute’] = $ _POST [chiave $. ‘_Minute’];
$ events_meta [chiave $. ‘_eventtimestamp’] = $ events_meta [chiave $. ‘_anno’] . $ events_meta [chiave $. ‘_mese’] . $ events_meta [chiave $. ‘_day’]. $ events_meta [chiave $. ‘_hour’]. $ events_meta [chiave $. ‘_Minute’];
}

// Aggiungi valori di $ events_meta come campi personalizzati

foreach ($ events_meta come $ key => $ value) {// Scorri l’array $ events_meta!
if ($ post->post_type == ‘revisione’) ritorno; // Non memorizzare i dati personalizzati due volte
$ value = implode (‘,’, (array) $ value); // Se $ value è un array, rendilo un CSV (improbabile)
if (get_post_meta ($ post->ID, $ chiave, FALSO)) {// Se il campo personalizzato ha già un valore
update_post_meta ($ post->ID, $ chiave, $ valore);
} else {// Se il campo personalizzato non ha un valore
add_post_meta ($ post->ID, $ chiave, $ valore);
}
if (! $ value) delete_post_meta ($ post->ID, $ chiave); // Elimina se vuoto
}

}

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

/ **
* Aiutanti a visualizzare la data sul front-end
* /

// Ottieni l’abbreviazione del mese

funzione eventposttype_get_the_month_abbr ($ mese) {
globale $ wp_locale;
per ($ i = 1; $ i < 13; $ i = $ i +1) {
if ($ i == $ mese)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
ritorna $ monthabbr;
}

// Visualizza la data

funzione eventposttype_get_the_event_date () {
$ post globale;
$ eventdate = ”;
$ mese = get_post_meta ($ post->ID, ‘_month’, true);
$ eventdate = eventposttype_get_the_month_abbr ($ mese);
$ eventdate. = ”. get_post_meta ($ postale->ID, “_day”, true). ”;
$ eventdate. = ”. get_post_meta ($ postale->ID, “_year”, true);
$ eventdate. = ‘at’. get_post_meta ($ postale->ID, ‘_hour’, true);
$ eventdate. = ‘:’. get_post_meta ($ postale->ID, ‘_minute’, true);
echo $ eventdate;
}

Nota: Se è la prima volta che aggiungi frammenti di codice in WordPress, fai riferimento alla nostra guida su come copiare / incollare correttamente gli snippet di codice in WordPress, quindi non rompere accidentalmente il tuo sito.

Se ti è piaciuto questo frammento di codice, ti consigliamo di consultare i nostri altri articoli sul sito come: 15 migliori strumenti e plugin di marketing dei contenuti e 50+ migliori temi WordPress reattivi per creare un sito Web pronto per dispositivi mobili.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map