Startdatum, Einddatum, Metabox voor evenementen Aangepaste berichttypen

Fragmenten van IsItWP


Wil je drie metaboxen toevoegen aan de aangepaste berichttypen van je evenementen? Hoewel er waarschijnlijk een plug-in voor is, hebben we een snel codefragment gemaakt dat u kunt gebruiken om de startdatum, einddatum en locatiemetabox toe te voegen voor evenementen aangepaste berichttypen.

Instructies:

Het enige dat u hoeft te doen, is deze code toevoegen aan het functies.php-bestand van uw thema of in een sitespecifieke plug-in:

functie ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Start Date and Time’, ‘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’ =>’_end’));
add_meta_box (‘ept_event_location’, ‘Event Location’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_end’));
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// Metabox HTML

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

// Gebruik nonce voor verificatie
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘tijdstempel’);
$ maand = get_post_meta ($ post->ID, $ metabox_id. ‘_month’, waar);

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

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

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

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

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

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

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

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

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

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

}

functie ept_event_location () {
wereldwijde $ post;
// Gebruik nonce voor verificatie
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// De metabox HTML
$ event_location = get_post_meta ($ post->ID, ‘_event_location’, waar);
echo ‘Locatie:’;
echo ”;
}

// Sla de Metabox-gegevens op

functie ep_eventposts_save_meta ($ post_id, $ post) {

if (gedefinieerd (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
terugkeren;

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

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

// Mag de gebruiker het bericht of de pagina bewerken?
if (! current_user_can (‘edit_post’, $ post->ID KAART ) )
terugkeren;

// OK, we zijn geverifieerd: we moeten de gegevens vinden en opslaan
// We zullen het in een array plaatsen om het gemakkelijker te maken om te herhalen

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

foreach ($ metabox_ids as $ key) {
$ events_meta [$ sleutel. ‘_month’] = $ _POST [$ key. ‘_maand’];
$ events_meta [$ sleutel. ‘_day’] = $ _POST [$ key. ‘_dag’];
if ($ _ POST [$ key. ‘_hour’]<10) {
$ events_meta [$ sleutel. ‘_hour’] = ‘0’. $ _ POST [$ key. ‘_uur’];
} anders {
$ events_meta [$ sleutel. ‘_hour’] = $ _POST [$ key. ‘_uur’];
}
$ events_meta [$ sleutel. ‘_year’] = $ _POST [$ key. ‘_jaar’];
$ events_meta [$ sleutel. ‘_hour’] = $ _POST [$ key. ‘_uur’];
$ events_meta [$ sleutel. ‘_minute’] = $ _POST [$ key. ‘_minuut’];
$ events_meta [$ sleutel. ‘_eventtimestamp’] = $ events_meta [$ key. ‘_jaar’]. $ events_meta [$ sleutel. ‘_month’]. $ events_meta [$ sleutel. ‘_dag’] . $ events_meta [$ sleutel. ‘_uur’]. $ events_meta [$ sleutel. ‘_minuut’];
}

// Voeg waarden van $ events_meta toe als aangepaste velden

foreach ($ events_meta as $ key => $ value) {// Blader door de $ events_meta-array!
if ($ post->post_type == ‘revisie’) retour; // Sla geen aangepaste gegevens tweemaal op
$ waarde = implode (‘,’, (array) $ waarde); // Als $ value een array is, maak er dan een CSV van (onwaarschijnlijk)
if (get_post_meta ($ post->ID, $ key, FALSE)) {// Als het aangepaste veld al een waarde heeft
update_post_meta ($ post->ID, $ sleutel, $ waarde);
} else {// Als het aangepaste veld geen waarde heeft
add_post_meta ($ post->ID, $ sleutel, $ waarde);
}
if (! $ value) delete_post_meta ($ post->ID, $ sleutel); // Verwijderen indien leeg
}

}

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

/ **
* Helpers om de datum op de voorkant weer te geven
* /

// Ontvang de afkorting voor de maand

functie eventposttype_get_the_month_abbr ($ maand) {
globaal $ wp_locale;
voor ($ i = 1; $ i < 13; $ i = $ i +1) {
if ($ i == $ maand)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
$ maandabbr retourneren;
}

// Geef de datum weer

functie eventposttype_get_the_event_date () {
wereldwijde $ post;
$ eventdate = ”;
$ maand = get_post_meta ($ post->ID, ‘_month’, waar);
$ eventdate = eventposttype_get_the_month_abbr ($ maand);
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_day’, waar). ‘,’;
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_year’, waar);
$ eventdate. = ‘at’. get_post_meta ($ post->ID, ‘_hour’, waar);
$ eventdate. = ‘:’. get_post_meta ($ post->ID, ‘_minute’, waar);
echo $ eventdate;
}

Notitie: Als dit de eerste keer is dat u codefragmenten toevoegt in WordPress, raadpleeg dan onze gids op hoe codefragmenten correct te kopiëren / plakken in WordPress, zodat u uw site niet per ongeluk breekt.

Als je dit codefragment leuk vond, overweeg dan om onze andere artikelen op de site te bekijken, zoals: 15 beste contentmarketingtools en plug-ins en 50+ best reagerende WordPress-thema’s om een ​​mobielklare website te maken.

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