Events Manager y Qtranslate

En esta ocasión os explicamos otro pequeño truco para hacer que los eventos de vuestro calendario creado a raiz del plugin Events Manager funcionen correctamente con Qtranslate

El problema

En esta ocasión los enlaces o los títulos de los eventos que aparecen al hacer el mouseover por encima de una fecha del calendario, se muestran de manera similar a esto “<!–:es–>Este es el evento en castellano<!–:–><!–:ca–>Aquest es l’esdeveniment en Català<!–:–> …..”  y eso no es correcto para una adecuada indexación.

Solución

Copia el siguiente código al final de tu functions.php (recomendable que tengas un child creado de tu template)

add_filter('em_event_output_placeholder','slw_em_eventlink_mod',1,3);
function slw_em_eventlink_mod($replace, $EM_Event, $result, $target){
        switch ($result) {
                case '#_LINKEDNAME': 
                case '#_EVENTLINK':  //Link de Evento
                case '#_EVENTNAME':  //Nombre del Evento
                        if ( preg_match('~<\!--:([A-Za-z]*?)-->~', $replace) ) {
                                // Esta parte aplica el filtro al título del evento
                                $event_name = apply_filters('the_title', $EM_Event->event_name);
                                $event_link = esc_url($EM_Event->get_permalink());
                                $replace = esc_attr($event_name); // Asignamos el valor a mostrar
                        }
                        break;
                default:
        }
        return $replace;
}

Verás que tu calendario muestra correctamente los títulos de los eventos en el idioma de la página que estas visualizando.

Hasta el próximo consejo!