Tengo un blog bilingüe con el inglés como idioma principal y árabe. Actualmente utilizo la publicación "Campo personalizado" para indicar que la publicación es árabe y la utilizo en el tema de mi hijo para cambiar la dirección a RTL y la traducción del texto a árabe. Sin embargo, lo hago manualmente, lo que significa que personalizo el tema por completo. con cadenas en ambos idiomas y elija la correcta según el valor del campo personalizado y también establezca la dirección de las etiquetas html para el título de la publicación, el cuerpo y los comentarios. Está funcionando, sin embargo, cambiar el tema más tarde significa que debo rehacer todo. También estoy tratando de usar un complemento de comentario "wpDiscuz" pero no hay otra forma fácil de controlar el idioma que no sea la edición del complemento, lo que no quiero hacer ya que quiero poder actualizarlo fácilmente y no rehacerlo. Cambios después de cada actualización.
Dado que WP ya es compatible con el idioma árabe y tiene las traducciones como archivos .mo con el rtl css correcto, y también el nuevo complemento es compatible con las traducciones .mo. Pensé que utilizaría eso y encontraría una alternativa para cambiar el idioma de wordpress al árabe solo para ciertas publicaciones. Sin embargo, todavía no estoy en condiciones de hacerlo.
Creé un complemento con un solo archivo functions.php
y este es el contenido:
function my_reset_locale($locale) {
$locale = 'ar';
return $locale;
}
add_filter('locale','my_reset_locale',10);
Este lo cambia para todo (página principal y todas las publicaciones individuales), intenté leer el ID de la publicación
global $post;
$postId = isset($post) ? $post->ID : '';
Pero las primeras 4 llamadas a mi función suceden antes de que se establezca $ post- > ID y si espero hasta que se establezca, se vuelve demasiado tarde ya que el idioma ya se cargó y cambiar $ locale después de eso no hace nada.
Entonces, ¿qué puedo hacer para obtener información sobre la publicación antes y antes de que se lea el idioma (creo que se llama a "load_textdomain" para seleccionar la traducción según la configuración regional ")