Startdatum, slutdatum, Metabox för händelser Anpassade inläggstyper

Utdrag av IsItWP


Vill du lägga till tre metaboxar i dina anpassade inläggstyper? Det finns förmodligen ett plugin för det här, men vi har skapat ett snabbkodavsnitt som du kan använda för att lägga till startdatum, slutdatum och platsmetabox för händelser anpassade inläggstyper.

Instruktioner:

Allt du behöver göra är att lägga till den här koden i ditt temas funktioner.php-fil eller i ett webbplatsspecifikt plugin:

funktion ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Startdatum och tid’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ => ‘_Start’) );
add_meta_box (‘ept_event_date_end’, ‘End Date and Time’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_slutet’) );
add_meta_box (‘ept_event_location’, ‘Event Location’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_slutet’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

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

// Använd nonce för verifiering
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘tidsstämpel’);
$ månad = get_post_meta ($ post->ID, $ metabox_id. “_månad”, sant);

if (tom ($ månad)) {
$ månad = gmdate (‘m’, $ time_adj);
}

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

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

$ år = get_post_meta ($ post->ID, $ metabox_id. “_år”, sant);

if (tom ($ år)) {
$ year = gmdate (‘Y’, $ time_adj);
}

$ hour = get_post_meta ($ post->ID, $ metabox_id. “_hour”, sant);

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

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

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

$ month_s = ”;
för ($ i = 1; $ i < 13; $ i = $ i +1) {
$ månad_s. = "\ T \ t \ t" . ”. $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\ n";
}
$ månad_s. = ”;

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

}

funktion ept_event_location () {
global $ post;
// Använd nonce för verifiering
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// Metabox-HTML
$ event_location = get_post_meta ($ post->ID, ‘_event_location’, sant);
echo ‘Plats:’;
eko ”;
}

// Spara Metabox-data

funktion ep_eventposts_save_meta ($ post_id, $ post) {

if (definierat (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
lämna tillbaka;

if (! isset ($ _POST [‘ep_eventposts_nonce’]))
lämna tillbaka;

if (! wp_verify_nonce ($ _POST [‘ep_eventposts_nonce’], plugin_basename (__FILE__)))
lämna tillbaka;

// Har användaren rätt att redigera inlägget eller sidan?
if (! current_user_can (‘edit_post’, $ post)->ID))
lämna tillbaka;

// OK, vi är autentiserade: vi måste hitta och spara data
// Vi lägger det i en matris för att göra det lättare att slinga men

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

förhand ($ metabox_ids som $ -nyckel) {
$ events_meta [$ key. ‘_month’] = $ _POST [$ -nyckel. ‘_månad’];
$ events_meta [$ key. ‘_day’] = $ _POST [$ -nyckel. ‘_dag’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [$ key. ‘_hour’] = ‘0’. $ _ POST [$ -nyckel. ‘_timme’];
} annat {
$ events_meta [$ key. ‘_hour’] = $ _POST [$ -nyckel. ‘_timme’];
}
$ events_meta [$ key. ‘_year’] = $ _POST [$ -nyckel. ‘_år’];
$ events_meta [$ key. ‘_hour’] = $ _POST [$ -nyckel. ‘_timme’];
$ events_meta [$ key. ‘_minute’] = $ _POST [$ -nyckel. ‘_minut’];
$ events_meta [$ key. ‘_eventtimestamp’] = $ events_meta [$ -nyckel. ‘_år’] . $ events_meta [$ key. “_månad”]. $ events_meta [$ key. ‘_dag’]. $ events_meta [$ key. ‘_hour’]. $ events_meta [$ key. ‘_minut’];
}

// Lägg till värden på $ events_meta som anpassade fält

förhand ($ events_meta som $ key => $ värde) {// Bläddra igenom $ events_meta-matrisen!
if ($ post->post_type == ‘revision’) return; // Spara inte anpassade data två gånger
$ value = implode (‘,’, (array) $ value); // Om $ -värde är en matris, gör det till en CSV (osannolikt)
if (get_post_meta ($ post)->ID, $ -nyckel, FALSE)) {// Om det anpassade fältet redan har ett värde
update_post_meta ($ post->ID, $ nyckel, $ värde);
} annars {// Om det anpassade fältet inte har något värde
add_post_meta ($ post->ID, $ nyckel, $ värde);
}
om (! $ värde) delete_post_meta ($ post->ID, $ -nyckel); // Radera om tomt
}

}

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

/ **
* Hjälpare att visa datumet i frontend
* /

// Få månadens förkortning

funktion eventposttype_get_the_month_abbr ($ månad) {
global $ wp_locale;
för ($ i = 1; $ i < 13; $ i = $ i +1) {
if ($ i == $ månad)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
returnera $ månad;
}

// Visa datum

funktion eventposttype_get_the_event_date () {
global $ post;
$ eventdate = ”;
$ månad = get_post_meta ($ post->ID, “_månad”, sant);
$ eventdate = eventposttype_get_the_month_abbr ($ månad);
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_dag’, sant). ”;
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_år’, sant);
$ eventdate. = ‘at’. get_post_meta ($ post->ID, ‘_hour’, sant);
$ eventdate. = ‘:’. get_post_meta ($ post->ID, ‘_minute’, sant);
echo $ eventdate;
}

Notera: Om det här är första gången du lägger till kodavsnitt i WordPress, se vår guide om hur man korrekt kopierar / klistrar in kodavsnitt i WordPress, så du inte av misstag bryter din webbplats.

Om du gillade det här kodavsnittet, kan du överväga att kolla in våra andra artiklar på webbplatsen som: 15 bästa verktyg och plugins för innehållsmarknadsföring och 50+ bästa svar på WordPress-teman för att skapa en mobilklar webbplats.

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