Imagen decorativa

Cóm fer compatible YoastSEO i Cookie Notice amb qTranslateX

En aquest article presentarem una solució al problema de compatibilitat existent entre els plugins Cookie Notice i Yoast SEO amb qTranslate-X.
En primer lloc explicarem en què consisteixen i que ens poden aportar aquests tres plugins al nostre lloc WordPress, després observarem com Cookie Notice i Yoast SEO no són compatibles amb qTranslate-X i finalment abordarem una possible solució que ens ajudi a resoldre aquest problema.

Cookie Notice

Cookie Notice, a d’avui, es considera un dels millors plugins de WordPress per poder complir amb la Llei de cookies vigent a Espanya i a la resta d’Europa. Ens permet informar els usuaris de l’ús de cookies per part d’un lloc web. Aquest plugin, personalitzable i de codi obert, ha estat realitzat per dFactory i pot ser utilitzat en qualsevol projecte creat amb WordPress.

Yoast SEO

Yoast SEO, desenvolupat per Joost de Valk i el seu equip de Yoast, és considerat un dels millors plugins de WordPress per a SEO. Aquest plugin ens pot ajudar a optimitzar el contingut del nostre lloc web i, d’aquesta manera, millorar el nostre posicionament web als cercadors.

qTranslate X

qTranslate-X és un dels plugins més populars per crear i mantenir llocs multilingües en WordPress. Existeixen més de 100.000 instal·lacions actives i és de codi obert, tot i que a la pàgina d’informació i descàrrega indiquen que els usuaris que el fan servir de manera permanent hauran de realitzar una donació.

Compatibilitat de Cookie Notice i Yoast SEO amb qTranslate X

Si tenim un lloc web multiidioma fet amb WordPress és probable que fem servir el plugin QTranslate-X. Si també hi tenim el plugin Cookie Notice, ens apareixerà un problema quan intentem redactar o traduir el missatge de notificació d’ús de les cookies als diferents idiomes que usem al nostre lloc web, ja que Cookie Notice no ens permetrà introduir els textos en diversos idiomes, ni tampoc ens permetrà usar els shortcodes de wordpress per seleccionar l’idioma per al qual desitgem definir aquest contingut. El mateix ens succeirà en el cas de voler utilitzar Yoast SEO amb qTranslate-X.

Cookie Notice només és compatible amb els plugins multiidiomes WPML i Polylang, les alternatives a qTranslate X.

Per a poder resoldre el tema de la compatibilitat entre Yoast SEO i qTranslate, l’any 2016, va aparèixer un nou connector anomenat “Integration: Yoast SEO & qTranslate-X”. Tot i això, si segueixes les instruccions que et detallem a continuació, podràs estalviar-te la seva instal·lació .

Cóm resoldre i configurar la compatibilitat de Cookie Notice i Yoast SEO amb qTranslate X

En primer lloc haurem d’accedir a l’arxiu functions.php. Aquest fitxer es troba dins del directori del tema que estiguis fent servir. Si el tema que uses s’anomena temaActiu, per posar un exemple, la ruta per localitzar el fitxer functions.php serà /wp-content/themes/temaActiu/functions.php, al qual haurem d’afegir la següent línia de codi:

function qtranslate_filter( $text ) {
return __( $text ); /* nos devuelve un string */
}

Solució al problema de traducció del plugin Yoast SEO amb qTranslate X

Per resoldre el problema de compatibilitat de qTranslateX amb Yoast SEO haurem inserir el següent codi a functions.php:

add_filter('wpseo_title', 'qtranslate_filter', 10, 1);
add_filter('wpseo_metadesc', 'qtranslate_filter', 10, 1);
add_filter('wpseo_metakey', 'qtranslate_filter', 10, 1);
add_filter( 'wpseo_opengraph_title', 'qtranslate_filter', 10, 1 );

Solució al problema de traducció del plugin Cookie Notice amb qTranslate X

En el cas de Cookie Notice, haurem de fer servir cn_cookie_notice_args. A diferència de les etiquetes usades per Yoast SEO, cn_cookie_notice_args és una taula (array), en comptes de ser una cadena (string). Si simplement inserim el codi:

add_filter( 'cn_cookie_notice_args', 'qtranslate_filter', 10, 1);

Se’ns generarà el següent error:

warningWarning: Illegal offset type in isset or empty in /"mi-instancia-wordpress"/wp-includes/pomo/translations.php on line 85

Per resoldre aquest problema, hem modificat el fitxer translations.php. Aquest es troba dins el directori wp-includes/pomo. Un cop obert el fitxer haurem modifcar la funció translate_entry(), a la qual afegirem la línia if (is_array($key)) {return "";}. La funció quedarà de la següent manera:

function translate_entry(&$entry) {
$key = $entry->key();
if (is_array($key)) {return "";} /*modificació realitzada*/
return isset($this->entries[$key])? $this->entries[$key] : false;
}

Aquesta solució no és molt elegant però resoldrà el problema actual de la compatibilitat entre els plugins Cookie Notice i qTranslate X, fins que no s’afegeixi la compatibilitat entre ambdós plugins.

Ús de la solució proposada

A partir d’aquí podrem fer ús dels shortcodes idiomàtics de qTranslate-X, que ens permeten declarar un camp com multilingue o traduïble. D’aquesta manera, als camps dels plugins Cookie Notice i Yoast SEO que acabem d’identificar, haurem d’escriure, per exemple:

[:ca]Aquesta web utilitza cookies. Si continues navegant, considerem que n’acceptes l’ús.[:es]Esta web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso.[:en]This site uses cookies. By continuing to browse the site, you are agreeing to our use of cookies.[:]

Leave a Reply

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *

*