Fecha de inicio, Fecha de finalización, Metabox para eventos Tipos de publicaciones personalizadas

Fragmentos de IsItWP


¿Desea agregar tres metaboxes a sus tipos de publicaciones personalizadas de eventos? Si bien es probable que haya un complemento para esto, hemos creado un fragmento de código rápido que puede usar para agregar fecha de inicio, fecha de finalización y metabox de ubicación para tipos de publicaciones personalizadas de eventos.

Instrucciones:

Todo lo que tiene que hacer es agregar este código al archivo functions.php de su tema o en un complemento específico del sitio:

función ep_eventposts_metaboxes () {
add_meta_box (‘ept_event_date_start’, ‘Fecha y hora de inicio’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ => ‘_comienzo’) );
add_meta_box (‘ept_event_date_end’, ‘Fecha y hora de finalización’, ‘ept_event_date’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_fin’) );
add_meta_box (‘ept_event_location’, ‘Ubicación del evento’, ‘ept_event_location’, ‘event’, ‘side’, ‘default’, array (‘id’ =>’_fin’) );
}
add_action (‘admin_init’, ‘ep_eventposts_metaboxes’);

// HTML de Metabox

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

// Usa nonce para la verificación
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);

$ time_adj = current_time (‘marca de tiempo’);
$ mes = get_post_meta ($ post->ID, $ metabox_id. ‘_mes’, cierto);

if (vacío ($ mes)) {
$ mes = gmdate (‘m’, $ time_adj);
}

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

if (vacío ($ día)) {
$ día = gmdate (‘d’, $ time_adj);
}

$ año = get_post_meta ($ post->ID, $ metabox_id. ‘_año’, cierto);

if (vacío ($ año)) {
$ año = gmdate (‘Y’, $ time_adj);
}

$ hora = get_post_meta ($ post->ID, $ metabox_id. ‘_hora’, cierto);

if (vacío ($ hora)) {
$ hora = gmdate (‘H’, $ time_adj);
}

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

if (vacío ($ min)) {
$ min = ’00’;
}

$ mes_s = ”;
para ($ i = 1; $ i < 13; $ i = $ i +1) {
$ mes_s. = "\ t \ t \ t" . ”. $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i)) . "\norte";
}
$ mes_s. = ”;

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

}

función ept_event_location () {
$ post global;
// Usa nonce para la verificación
wp_nonce_field (plugin_basename (__FILE__), ‘ep_eventposts_nonce’);
// El metabox HTML
$ event_location = get_post_meta ($ post->ID, ‘_event_location’, verdadero);
echo ‘Ubicación:’;
eco ”;
}

// Guardar los datos de Metabox

función ep_eventposts_save_meta ($ post_id, $ post) {

if (definido (‘DOING_AUTOSAVE’) && DOING_AUTOSAVE)
regreso;

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

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

// ¿Se le permite al usuario editar la publicación o la página??
if (! current_user_can (‘edit_post’, $ post->CARNÉ DE IDENTIDAD ) )
regreso;

// OK, estamos autenticados: necesitamos encontrar y guardar los datos
// Lo pondremos en una matriz para que sea más fácil hacer un bucle

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

foreach ($ metabox_ids como $ key) {
$ events_meta [$ clave. ‘_month’] = $ _POST [$ clave. ‘_mes’];
$ events_meta [$ clave. ‘_day’] = $ _POST [$ clave. ‘_día’];
if ($ _ POST [$ clave. ‘_hora’]<10) {
$ events_meta [$ clave. ‘_hour’] = ‘0’. $ _ POST [$ clave. ‘_hora’];
} más {
$ events_meta [$ clave. ‘_hour’] = $ _POST [$ clave. ‘_hora’];
}
$ events_meta [$ clave. ‘_year’] = $ _POST [$ clave. ‘_año’];
$ events_meta [$ clave. ‘_hour’] = $ _POST [$ clave. ‘_hora’];
$ events_meta [$ clave. ‘_minute’] = $ _POST [$ clave. ‘_minuto’];
$ events_meta [$ clave. ‘_eventtimestamp’] = $ events_meta [$ clave. ‘_año’] . $ events_meta [$ clave. ‘_mes’]. $ events_meta [$ clave. ‘_day’]. $ events_meta [$ clave. ‘_hora’]. $ events_meta [$ clave. ‘_minuto’];
}

// Agregar valores de $ events_meta como campos personalizados

foreach ($ events_meta como $ key => $ value) {// Recorrer la matriz $ events_meta!
if ($ publicación->post_type == ‘revisión’) return; // No almacene datos personalizados dos veces
$ value = implode (‘,’, (array) $ value); // Si $ value es una matriz, conviértalo en un CSV (poco probable)
if (get_post_meta ($ publicación->ID, $ clave, FALSO)) {// Si el campo personalizado ya tiene un valor
update_post_meta ($ post->ID, $ clave, $ valor);
} else {// Si el campo personalizado no tiene un valor
add_post_meta ($ post->ID, $ clave, $ valor);
}
if (! $ value) delete_post_meta ($ post->ID, $ clave); // Eliminar si está en blanco
}

}

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

/ **
* Ayudantes para mostrar la fecha en la parte delantera
* /

// Obtenga la abreviatura del mes

función eventposttype_get_the_month_abbr ($ mes) {
global $ wp_locale;
para ($ i = 1; $ i < 13; $ i = $ i +1) {
si ($ i == $ mes)
$ monthabbr = $ wp_locale->get_month_abbrev ($ wp_locale->get_month ($ i));
}
devuelve $ monthabbr;
}

// Mostrar la fecha

función eventposttype_get_the_event_date () {
$ post global;
$ eventdate = ”;
$ mes = get_post_meta ($ post->ID, ‘_mes’, verdadero);
$ eventdate = eventposttype_get_the_month_abbr ($ mes);
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_day’, verdadero). ‘,’;
$ eventdate. = ”. get_post_meta ($ post->ID, ‘_año’, verdadero);
$ eventdate. = ‘en’. get_post_meta ($ post->ID, ‘_hora’, verdadero);
$ eventdate. = ‘:’. get_post_meta ($ post->ID, ‘_minuto’, verdadero);
echo $ eventdate;
}

Nota: Si es la primera vez que agrega fragmentos de código en WordPress, consulte nuestra guía sobre Cómo copiar / pegar correctamente fragmentos de código en WordPress, para que no rompa accidentalmente su sitio.

Si le gustó este fragmento de código, considere consultar nuestros otros artículos en el sitio como: 15 mejores herramientas y complementos de marketing de contenido y más de 50 mejores temas de WordPress receptivos para crear un sitio web listo para dispositivos móviles.

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