Entradas

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!

Desactivar Autoupdates de WordPress

WordPress, tiene por defecto una serie de valores de configuración que podrían dar algun susto a mas de uno.

Una de estas opciones nativas de WordPress es la opción de actualización de versión del núcleo (CORE) de manera desatendida (al igual que hacen otros programas en nuestros equipos, sin que nos pida ninguna confirmación).

Para desactivar esta opción en tu WordPress tienes la posibilidad de instalar algun plugin para desactivar esta funcionalidad o bien, la que recomendamos a continuación que consiste en editar el fichero wp-config.php que esta en la raiz de tu instalación WordPress. Inserta esta línea:

define( 'WP_AUTO_UPDATE_CORE', false );

Luego, graba los cambios y subes el fichero. Ahora tu WordPress ya no se actualizará si tu no se lo indicas.

Qtranslate no soportado en mi versión WordPress?

Despues de actualizar tu versión de WordPress puedes encontrarte que diferentes componentes (plugins) y widgets dejan de funcionar correctamente.

En el caso que nos ocupa Qtranslate, (el conocido sistema para hacer multiidioma tu web en WordPress) no esta exento de estos problemas e incompatibilidades de versiones.

Puede ocurrir que tengas la última versión de Qtranslate y que no haya todavía una versión actualizada para la nueva versión de WordPress que acaban de publicar… Como consecuencia, tu editor de páginas con las pestañas de idioma deja de funcionar y aparece el siguiente mensaje:

“The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version”

¿Como solucionar ésto?

Pues una opción “temporal” es editar el fichero qtranslate.php que encontrarás en la carpeta del plugin y donde pone :

// qTranslate Editor will only activated for the given version of WordPress.
// Can be changed to use with other versions but might cause problems and/or data loss!
define('QT_SUPPORTED_WP_VERSION', '3.7.1');

sustituye la versión ‘3.7.1’ por la versión que tengas del WordPress (en nuestro caso fue cambiarla  a la 3.7.2 ya que no habia una versión qtranslate que soportara dicha versión)

Una vez guardados los cambios y publicado de nuevo el archivo, observarás que aparecen nuevamente tus pestañas en el editor de tu WordPress.

Qtranslate. Logo y link Home del menú, apuntan al idioma por defecto. Como solucionarlo

En esta ocasión, os damos un pequeño pero útil truco para hacer que vuestro logo y enlace del item de menú “home” de la web apunte a la página principal en su correspondiente idioma gracias a Qtranslate.

Cuando insertas Qtransalte en tu web para tener multiidioma, te encuentras que no enlazan correctamente el ítem de menú “Inicio” y logo. Éstos deberian apuntar a la URL de la página principal de cada idioma pero cuando haces clic siempre vuelve a la página principal del idioma por defecto. Para solucionar este pequeño problemilla os detallamos los puntos a sustituir.

Primero, teneis que editar el fichero de header.php de vuestro template y sustituir el código que genera el enlace por el siguiente código donde se inserta el logo.
Aqui os mostramos un ejemplo donde se encuentra el código…

....
<div id="header" class="<?php echo $headerstyle; ?>">
     <div class="container">
          <div class="one-fourth column alpha">
             <a id="logo" href="<?php echo site_url(); ?>"><img src="<?php get_option_tree('logo', '', true); ?>" alt="<?php bloginfo('name'); ?>"/></a>
          </div><!-- End Header Grid 2 -->
....

Deberás sustituir el echo site_url(); por este otro echo esc_url(home_url());
Graba el fichero

Ya para finalizar edita el fichero qtransalte_hooks.php del plugin Qtranslate e inserta estas lineas al final del código (justo antes del cierre de php ?> )

add_filter('walker_nav_menu_start_el', 'qtrans_in_nav_el', 10, 4);
function qtrans_in_nav_el($item_output, $item, $depth, $args){
    $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';

   // Determine integration with qTranslate Plugin
   if (function_exists('qtrans_convertURL')) {
      $attributes .= ! empty( $item->url ) ? ' href="' . qtrans_convertURL(esc_attr( $item->url )) .'"' : '';
   } else {
      $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
   }

   $item_output = $args->before;
   $item_output .= '<a'. $attributes .'>';
   $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
   $item_output .= '</a>';
   $item_output .= $args->after;

   return $item_output;
}

add_filter('home_url','qtrans_convertURL');

Grabáis el fichero y ahora vereis como vuestro enlace de HOME y LOGO apunta a la página principal de cada idioma.

Obtén una web mas internacional con Qtranslate. Problemas y soluciones

Qtranslate es un plugin para WordPress que permite añadir soporte multiidioma a nuestra web. Es compatible con bastantes plugins y plantillas aunque no siempre todo es tan sencillo como aparenta. Qtranslate, como otros plugins, es un test&pray (testea y ruega que funcione bien a la primera).

En el caso de que todo te funcione correctamente, tendrás en poco tiempo tu web preparada para poder introducir los contenidos en varios idiomas y sin complicaciones. Si te encuentras en el otro caso, te ponemos algunas soluciones a posibles fallos en la instalación de nuevos idiomas.

  • Problema:

    Error “Could not Write to “[ruta]/wp-content/languages” , Gettext Databases could not be downloaded!
    Solución:
    Cambia los permisos de esa carpeta (languages) y ponlos en   777 (lectura, escritura y ejecución). Normalmente estan en 755, pero dependiendo de los ISP y empresas de servicios de hosting deberás aplicar este cambio.
  • Problema:Si al añadir un idioma que no esta en el Qtranslate aparece el mensaje “Error “Language ya está habilitado o no válida!”.

    Solución:
    El problema esta en la base de datos. Seguramente algunas de las tablas, (wp_otions por ejemplo) donde esta el WordPress, esta en un formato que no es utf8_unicode_ci. Para sustituirlo lo mejor es que sigas los siguientes pasos: (Ojo, si no conoces phpMyAdmin mejor no toques, podrías borrar tu web).

      • Haz un backup de tu base de datos (fichero sql por ejemplo)
      • Reemplaza en ese fichero los literales (por ejemplo latin1 a uft8) tal cual
      • Guardar el archivo (formato .sql)
      • Vacia la base de datos
      • Sube el archivo (via importador de Phpmyadmin) sobre la base de datos
      • Y vuelve a probar con la activación del idioma (seguramente deberás volver a introducir todos los datos de nuevo del idioma que querias añadir.

Estos son algunos de las soluciones a los problemas mas comunes de instalación y activación de idiomas con el plugin Qtranslate.
Esperamos que te sirva de ayuda!