Začetni datum, končni datum, Metabox za dogodke Vrste objav po meri

Odrezki avtorja IsItWP


Ali želite svojim vrstam objav po meri dodati tri metaboksna? Čeprav za to verjetno obstaja vtičnik, smo ustvarili hiter delček kode, ki ga lahko uporabite za dodajanje začetnega datuma, končnega datuma in metaboksa lokacije za dogodke po meri objavljenih vrst.

Navodila:

Vse, kar morate storiti, je, da to kodo dodate v datoteko function.php teme ali v vtičnik za spletno mesto:

funkcija ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Datum in čas začetka’, ‘ept_event_date’, ‘dogodek’, ‘stran’, ‘privzeto’, matrika (‘id’ => ‘_ začetek’));
add_meta_box (‘ept_event_date_end’, ‘Končni datum in čas’, ‘ept_event_date’, ‘dogodek’, ‘stran’, ‘privzeto’, matrika (‘id’ =>’_ končati’));
add_meta_box (‘ept_event_location’, ‘Lokacija dogodka’, ‘ept_event_location’, ‘dogodek’, ‘stran’, ‘privzeto’, matrika (‘id’ =>’_ končati’));
}
dodajanje (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

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

// Uporabite nonce za preverjanje
wp_nonce_field (ime vtičnika (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘časovni žig’);
$ month = get_post_meta ($ objava->ID, $ metabox_id. ‘_mesec’, res);

če (prazen ($ mesec)) {
$ month = gmdate (‘m’, $ time_adj);
}

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

če (prazen ($ dan)) {
$ day = gmdate (‘d’, $ time_adj);
}

$ year = get_post_meta ($ objava->ID, $ metabox_id. ‘_ let’, res);

če (prazno (leto)) {
$ year = gmdate (‘Y’, $ time_adj);
}

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

če (prazno ($ ura)) {
$ hour = gmdate (‘H’, $ time_adj);
}

$ min = get_post_meta ($ objava->ID, $ metabox_id. ‘_minut’, res);

če (prazno ($ min)) {
$ min = ’00’;
}

$ month_s = ”;
za ($ 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. = ”;

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

}

funkcija ept_event_location () {
globalni $ post;
// Uporabite nonce za preverjanje
wp_nonce_field (ime vtičnika (__FILE__), ‘ep_eventposts_nonce’);
// Metabox polje HTML
$ event_location = get_post_meta ($ objava->ID, ‘_event_location’, resnično);
odmev ‘Lokacija:’;
odmev ”;
}

// Shranite podatke Metabox

funkcija ep_eventposts_save_meta ($ post_id, $ post) {

če (določeno (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
vrnitev;

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

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], ime vtičnika (__FILE__))
vrnitev;

// Ali lahko uporabnik ureja objavo ali stran?
if (! current_user_can (‘edit_post’, $ post->ID))
vrnitev;

// V redu, overjeni smo: podatke moramo najti in shraniti
// Dali ga bomo v niz, da bomo olajšali zanko

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

foreach ($ metabox_ids kot $ key) {
$ events_meta [$ $. ‘_mesec’] = $ _POST [tipka $. ‘_mesec’];
$ events_meta [$ $. ‘_day’] = $ _POST [$ $. ‘_day’];
if ($ _ POST [$ $. ‘_hour’]<10) {
$ events_meta [$ $. ‘_hour’] = ‘0’. $ _ POST [tipka $. ‘_hour’];
} else {
$ events_meta [$ $. ‘_hour’] = $ _POST [tipka $. ‘_hour’];
}
$ events_meta [$ $. ‘_year’] = $ _POST [$ $. ‘_ leto’];
$ events_meta [$ $. ‘_hour’] = $ _POST [tipka $. ‘_hour’];
$ events_meta [$ $. ‘_minuta’] = $ _POST [tipka $. ‘_ minuta’];
$ events_meta [$ $. ‘_eventtimestamp’] = $ events_meta [$ $. ‘_ let’]. $ events_meta [$ $. ‘_mesec’]. $ events_meta [$ $. ‘_day’]. $ events_meta [$ $. ‘_hour’]. $ events_meta [$ $. ‘_ minuta’];
}

// Dodajte vrednosti $ events_meta kot polja po meri

foreach ($ events_meta kot $ key => $ value) {// Pojdite skozi matriko $ events_meta!
če ($ objava->post_type == ‘revizija’) vrnitev; // Podatkov po meri ne shranjujte dvakrat
$ value = implode (‘,’, (matrika) $ value); // Če je vrednost $ matrika, naj bo to CSV (malo verjetno)
če (get_post_meta ($ post->ID, $ key, FALSE)) {// Če polje po meri že ima vrednost
update_post_meta ($ objava->ID, ključ $, vrednost $);
} else {// Če polje po meri nima vrednosti
add_post_meta ($ objava->ID, ključ $, vrednost $);
}
if (! $ value) delete_post_meta ($ post->ID, $ ključ); // Izbriši, če je prazno
}

}

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

/ **
* Pomaga pri prikazovanju datuma na sprednjem koncu
* /

// Pridobite mesec okrajšavo

funkcija eventposttype_get_the_month_abbr ($ mesec) {
globalna $ wp_locale;
za ($ i = 1; $ i < 13; $ i = $ i +1) {
če ($ i == $ mesec)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale)->get_month ($ i));
}
vrniti $ monthabbr;
}

// Prikažite datum

funkcija eventposttype_get_the_event_date () {
globalni $ post;
$ eventdate = ”;
$ month = get_post_meta ($ objava->ID, ‘_mesec’, resnično);
$ eventdate = eventposttype_get_the_month_abbr ($ mesec);
$ eventdate. = ”. get_post_meta ($ objava->ID, ‘_day’, resnično). ‘,’;
$ eventdate. = ”. get_post_meta ($ objava->ID, ‘_ let’, resnično);
$ eventdate. = ‘pri’. get_post_meta ($ objava->ID, ‘_hour’, resnično);
$ eventdate. = ‘:’. get_post_meta ($ objava->ID, ‘_minuta’, res);
echo $ eventdate;
}

Opomba: Če prvič dodate odrezke kode v WordPress, potem glejte naš vodnik na kako pravilno kopirati / prilepiti odrezke kode v WordPress, da slučajno ne pokvarite svojega spletnega mesta.

Če vam je bil všeč ta delček kode, si oglejte druge članke na spletnem mestu, kot so: 15 najboljših orodij in vtičnikov za trženje vsebine in 50+ najbolj odzivnih tem WordPress, da ustvarite spletno mesto, pripravljeno za mobilne naprave.

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