Dátum začatia, Dátum ukončenia, Metabox pre udalosti Vlastné typy príspevkov

Úryvky od IsItWP


Chcete do svojich vlastných typov príspevkov pridať tri metaboxy? Aj keď je tu pravdepodobne doplnok, vytvorili sme rýchly útržok kódu, ktorý môžete použiť na pridanie dátumu začatia, dátumu ukončenia a metaboxu polohy pre udalosti vlastných typov príspevkov.

Inštrukcie:

Všetko, čo musíte urobiť, je pridať tento kód do súboru funkcií.php témy alebo do doplnku pre konkrétnu lokalitu:

function ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Dátum a čas začiatku’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ => ‘_start’));
add_meta_box (‘ept_event_date_end’, ‘Dátum a čas ukončenia’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_koniec’) );
add_meta_box (‘ept_event_location’, ‘Event event’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_koniec’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

function ept_event_date ($ post, $ args) {
$ metabox_id = $ args [‘args’] [‘id’];
globálny $ post, $ wp_locale;

// Na overenie použite nonce
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

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

if (empty ($ month)) {
$ month = gmdate (‘m’, $ time_adj);
}

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

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

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

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

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

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

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

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

$ month_s = ”;
pre ($ 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;
echo ”;
echo ‘@’;
echo ‘:’;
echo ”;

}

function ept_event_location () {
globálny príspevok $;
// Na overenie použite nonce
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// Metabox HTML
$ event_location = get_post_meta ($ post->ID, ‘_event_location’, true);
echo ‘Location:’;
echo ”;
}

// Uložte údaje metaboxu

function ep_eventposts_save_meta ($ post_id, $ post) {

ak (definované („DOING_AUTOSAVE“)) && DOING_AUTOSAVE)
return;

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

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

// Je používateľ oprávnený upravovať príspevok alebo stránku?
if (! current_user_can (‘edit_post’, $ post)->ID))
return;

// OK, sme overení: údaje musíme vyhľadať a uložiť
// Vložíme ju do poľa, aby sme uľahčili vytváranie slučiek

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

foreach ($ metabox_ids ako $ key) {
$ events_meta [$ key. ‘_month’] = $ _POST [$ key. ‘_Month’];
$ events_meta [$ key. ‘_day’] = $ _POST [$ key. ‘_Day’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [$ key. ‘_hour’] = ‘0.’ $ _ POST [$ key. ‘_Hour’];
} else {
$ events_meta [$ key. ‘_hour’] = $ _POST [$ key. ‘_Hour’];
}
$ events_meta [$ key. ‘_year’] = $ _POST [$ key. ‘_Year’];
$ events_meta [$ key. ‘_hour’] = $ _POST [$ key. ‘_Hour’];
$ events_meta [$ key. ‘_minute’] = $ _POST [$ key. ‘_Minute’];
$ events_meta [$ key. ‘_eventtimestamp’] = $ events_meta [$ key. ‘_year’]. $ events_meta [$ key. ‘_month’]. $ events_meta [$ key. ‘_day’]. $ events_meta [$ key. ‘_hour’]. $ events_meta [$ key. ‘_Minute’];
}

// Pridajte hodnoty $ events_meta ako vlastné polia

($ events_meta ako $ key => $ value) {// Prechádzajte sa cez pole $ events_meta!
ak ($ ​​post->post_type == ‘revízia’) return; // Neukladajte vlastné údaje dvakrát
$ value = implode (‘,’, (array) $ value); // Ak je hodnota $ pole, urobte z neho CSV (nepravdepodobné)
if (get_post_meta ($ post->ID, $ key, FALSE)) {// Ak už vlastné pole má hodnotu
update_post_meta ($ príspevok->ID, $ key, $ value);
} else {// Ak vlastné pole nemá hodnotu
add_post_meta ($ príspevok->ID, $ key, $ value);
}
ak (! $ value) delete_post_meta ($ post->ID, $ key); // Odstrániť, ak je prázdne
}

}

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

/ **
* Pomocníci zobrazujúci dátum na klientskom rozhraní
* /

// Získajte skratku mesiaca

function eventposttype_get_the_month_abbr ($ month) {
global $ wp_locale;
pre ($ i = 1; $ i < 13; $ i = $ i +1) {
ak ($ ​​i == $ mesiac)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
návrat $ monthabbr;
}

// Zobrazenie dátumu

function eventposttype_get_the_event_date () {
globálny príspevok $;
$ eventdate = ”;
$ month = get_post_meta ($ post->ID, ‘_month’, true);
$ eventdate = eventposttype_get_the_month_abbr ($ mesiac);
$ eventdate. = ”. get_post_meta ($ príspevok->ID, „_day“, pravda). ”;
$ eventdate. = ”. get_post_meta ($ príspevok->ID, „_year“, true);
$ eventdate. = ‘o’. get_post_meta ($ príspevok->ID, ‘_hour’, true);
$ eventdate. = ‘:’. get_post_meta ($ príspevok->ID, ‘_minute’, true);
echo $ eventdate;
}

Poznámka: Ak toto prvýkrát pridávate útržky kódu vo WordPress, pozrite si prosím našu príručku ako správne skopírovať / vložiť útržky kódu v, takže svoje stránky náhodne nezlomíte.

Ak sa vám tento zlomok kódu páčil, zvážte vyskúšanie našich ďalších článkov na webe, ako sú: 15 najlepších nástrojov a doplnkov na marketing obsahu a 50+ najlepšie responzívnych tém WordPress na vytvorenie webovej lokality pripravenej pre mobilné zariadenia.

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