Un usuario preguntó 👇
Hola. Estoy intentando crear un acceso directo usando fine_get_start_date (). Lo puse en las funciones my.php de la siguiente manera:
// Add Shortcode For Event Date
function start_date_shortcode() {
global $post;
echo tribe_get_start_date( $post, false, 'F j, Y - g:i a');
}
add_shortcode('start-date', 'start_date_shortcode');
Luego mapeé este atajo en Visual Composer y lo usé en un bloque de texto, pero no encontré nada. Solo consigo que funcione si escribo la identificación individual del evento. Así que supongo que es el $post
no obteniendo el ID del evento.
¿Cómo puedo arreglar esto?
Gracias por adelantado.
PD: Estoy usando este atajo en la función Post-Grid de Visual Composer. Estoy creando una cuadrícula personalizada.
Este tema fue modificado hace 2 años, 6 meses por.
(@mrprainx)
Hace 2 años, 6 meses
Editar:
Configuré el código de la siguiente manera:
// Add Shortcode For Event Date
function start_date_shortcode() {
global $post
return tribe_get_start_date( $post->id, false, 'F j, Y - g:i a');
}
add_shortcode('start-date', 'start_date_shortcode');
Pero no funciona.
(@erishel)
Hace 2 años, 6 meses
Hola @mrprainx!
Gracias por comunicarte. Lamento que tengas problemas.
Para usar fine_get_start_date (); deberá colocarlo dentro de una consulta personalizada para que sepa de qué publicaciones (en realidad eventos) está extrayendo la fecha.
Aquí hay un gran artículo que analiza ambos → https://theeventscalendar.com/knowledgebase/custom-event-queries/
¡Espero que ayude!
(@mrprainx)
Hace 2 años, 6 meses
Hola Ed.
¡Esto ayudó mucho! ¡Gracias!
Actualicé el código de la siguiente manera:
// Add Shortcode For Event Date
function start_date_shortcode() {
$events = tribe_get_events();
foreach( $events as $event ) {
echo tribe_get_start_date( $event, false, 'j M, Y - g:i A');
}
}
add_shortcode('start-date', 'start_date_shortcode');
El problema ahora es que no solo muestra la fecha de todos los eventos. Como puede ver en la imagen, tengo 2 eventos; el atajo ahora muestra la fecha de inicio de ambos:
¿Qué me estoy perdiendo?
(@mrprainx)
Hace 2 años, 6 meses
Editar:
Continuo esta guía, Actualicé el código de la siguiente manera:
// Add Shortcode For Event Date
function start_date_shortcode() {
// Ensure the global $post variable is in scope
global $post;
// Retrieve events
$events = tribe_get_events();
// Loop through the events: set up each one as
// the current post then use template tags to
// display the start date date
foreach ( $events as $post ) {
setup_postdata( $post );
echo tribe_get_start_date( $post, false, 'j M, Y - h H:i' ) . '<br/>';
}
}
add_shortcode('start-date', 'start_date_shortcode');
Pero sigo recibiendo la lista de fechas de inicio de todos los eventos.
(@mrprainx)
Hace 2 años, 6 meses
Actualizar:
He leído que existe una forma específica de obtener detalles del trabajo para Visual Composer Job Grid. Es por eso que la función no recibió un «ID».
https://kb.wpbakery.com/docs/developers-how-tos/adding-custom-shortcode-to-grid-builder/
Siguiendo estas dos guías logré poner en marcha la fecha de inicio del evento.
Gracias.
(@dg_amanda)
Hace 2 años, 3 meses
Hola mrprainx,
¿Podría publicar un ejemplo de cómo pudo mostrar la fecha de inicio del programa de una manera fácil de usar en Visual Composer Post Grid?
Estoy tratando de hacer lo mismo. Sin embargo, encuentro que no puedo usar la variable de plantilla Visual Composer para ingresar el ID de la publicación en la función get_post_meta () porque no está disponible para PHP, directamente en la página del navegador.
Estoy seguro de que me perdí algo en los enlaces que proporcionó y espero aprender de cómo lo ha implementado con éxito.
Gracias por cualquier ayuda que pueda brindar.
Aquí está la función que estoy usando:
add_filter( 'vc_grid_item_shortcodes', 'my_module_add_grid_shortcodes' );
function my_module_add_grid_shortcodes( $shortcodes ) {
$shortcodes['vc_post_id'] = array(
'name' => __( 'The Events Calendar Event Date', 'my-text-domain' ),
'base' => 'vc_post_id',
'category' => __( 'Content', 'my-text-domain' ),
'description' => __( 'Show current event date', 'my-text-domain' ),
'post_type' => Vc_Grid_Item_Editor::postType(),
);
return $shortcodes;
}
// output function
add_shortcode( 'vc_post_id', 'vc_post_id_render' );
function vc_post_id_render() {
$tec_id = '{{ post_data:ID }}'; // usage of template variable post_data with argument "ID"
$tec_start = get_post_meta($tec_id, '_EventStartDate', false);
$tec_date = tribe_format_date(array_values($tec_start)[0]);
return $tec_date;
}
Esta respuesta fue modificada hace 2 años, 3 meses por.
(@advertisingworks)
Hace 1 año, 11 meses
Hola mrprainx ¿Puede aconsejarnos sobre la función que utilizó para dibujar el atajo que activó la fecha de salida del constructor tribal en un generador de cuadrícula? Gracias
(@mrprainx)
Hace 1 año, 11 meses
Hola a ambos. Y lo siento Amanda por este acertijo tardío. No recibí ninguna notificación.
Para ser honesto, no lo recuerdo con claridad. Pero mi functions.php incluye:
// Add Shortcode For Event Date
function start_date_shortcode() {
// Ensure the global $post variable is in scope
global $post;
// Retrieve events
$events = tribe_get_events();
// Loop through the events: set up each one as
// the current post then use template tags to
// display the start date date
foreach ( $events as $post ) {
$postid = get_the_ID();
setup_postdata( $post );
return tribe_get_start_date( $post, false, 'j M, Y - h H:i' ) . '<br/>';
}
}
add_shortcode('start-date', 'start_date_shortcode');
//** Event Date Shortcodes ***********
//********************************
add_filter( 'vc_gitem_template_attribute_event_date','vc_gitem_template_attribute_event_date', 10, 2 );
function vc_gitem_template_attribute_event_date( $value, $data ) {
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
$atts_extended = array();
parse_str( $data, $atts_extended );
$atts = $atts_extended['atts'];
// write all your widget code in here using queries etc
$startdate = tribe_get_start_date( $post->ID, false, 'j M, Y' ) . '<br/>';
$output = $startdate;
return $output;
}
add_filter( 'vc_grid_item_shortcodes', 'event_date_shortcodes' );
function event_date_shortcodes( $shortcodes ) {
$shortcodes['vc_event_date'] = array(
'name' => __( 'Data Evento', 'sage' ),
'base' => 'vc_event_date',
'icon' => get_template_directory_uri() . '/assets/images/icon.svg',
'category' => __( 'Content', 'sage' ),
'description' => __( 'Data evento', 'sage' ),
'post_type' => Vc_Grid_Item_Editor::postType()
);
return $shortcodes;
}
add_shortcode( 'vc_event_date', 'vc_event_date_render' );
function vc_event_date_render($atts){
$atts = vc_map_get_attributes( 'vc_event_date', $atts );
return '{{ event_date }}';
}
Luego, debe mapear los atajos / códigos cortos usando Visual Composer. Información aquí: https://kb.wpbakery.com/docs/learning-more/shortcode-mapper/
Finalmente, usando el generador de cuadrículas (información aquí: https://kb.wpbakery.com/docs/learning-more/grid-builder/) cuando agregue un nuevo elemento, verá los accesos directos que ha creado.
Espero que esto ayude.
(@advertisingworks)
Hace 1 año, 11 meses
Hola Sr. mrprainx
¡Perfectamente, sus soluciones funcionan muy bien!
Gracias
(@mrprainx)
Hace 1 año, 11 meses
¡Excelente! ¡Encantado de ayudar!
¿Solucionó tu problema??
0 / 0