Hola @toyohg parece que haya un error en la petición AJAX, mira la consola de Google Chrome o la de Firefox (en ambos Ctrl+May+I Windows ó Cmd+Opción+I Mac) y comprueba que no aparezcan errores de javascript que puedan interferir con las llamadas AJAX y también comprueba las llamadas AJAX que realizan, podrás ver los resultados, fallos, advertencias, etc. en la pestaña console de tu navegador.
Saludos.
Iniciador del debate
toyohg
(@toyohg)
Hola @carloslongarela . Gracias por tu respuesta.
No sé muy bien qué tengo que ver pero no parece que haya errores.
Esto es lo que veo en la consola cuando intento hacer una búsqueda:
JQMIG load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils&ver=4.8:9
RATE : Migrate is installed, version 1.4.1
>
¿Es eso lo que me decías que comprobara? ¿Alguna comprobación más que pueda hacer?
Añado que he probado con otros navegadores y tampoco funciona.
También he probado en otras instalaciones de wordpress y si funciona. Sólo falla en ésta.
Por descartar que fuese problema del equipo, navegador o SO.
La web es defiancegaming.g2gesports.com
Un saludo.
Iniciador del debate
toyohg
(@toyohg)
Ok, he ido dando pasos atrás y he aislado el problema.
Es al intentar incluir el código de Google Tag Manager en functions.php. Si quito eso, puedo buscar plugins…
Entonces el tema es ver qué falla en esas líneas de código porque quiero tener tag manager instalado… a ver qué he hecho mal:
<?php
add_action('wp_head','my_analytics', 20);
function my_analytics() {
?>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','XXX-XXXXXXX');</script>
<!-- End Google Tag Manager -->
<?php
}
?>
<?php
add_action('wp_body','my_tag', 20);
function my_tag() {
?>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=XXX-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<?php
}
?>
<?php
add_filter('tc_credits_display', 'my_custom_credits');
function my_custom_credits(){
echo '<div class="span4 credits">
<p> Copyright '.esc_attr( date( 'Y' ) ).' <a href="'.esc_url( home_url() ).'" title="'.esc_attr(get_bloginfo()).'" rel="bookmark">'.esc_attr(get_bloginfo()).'</a>. All Rights Reserved. </p></div>';
}
?>
Seguí las instrucciones de un hilo del tema (customizr). Era para Google analitics pero lo adapté. La última parte es para cambiar la frase al pie de la web, sacada de otro foro.
-
Esta respuesta fue modificada hace 8 años, 9 meses por
toyohg.
Hola @toyohg la primera función my_analyticsy la tercera my_custom_credits son correctas pero la segunda my_tag aunque la función es correcta no creo que se llegue a ejecutar nunca ya que no veo la acción wp_body a diferencia de wp_head y mirando el código fuente de la página que me indicas si aparece el código de la primera función, pero en ningún lado el de la segunda (la tercera también aparece) .
Puedes realizar varios pasos para intentar encontrar el fallo, como comentar todo el código de la segunda función a ver si se resuelve, otra opción es que cargue el código del Tag Manager sólo sin no estás como admin con una condición:
if ( ! is_admin() && ! is_preview() ){ // Si no está en admin ni es preview de página.
add_action('wp_head','my_analytics', 20);
}
y lo mismo para la segunda función:
if ( ! is_admin() && ! is_preview() ){ // Si no está en admin ni es preview de página.
add_action('wp_body','my_tag', 20);
}
-
Esta respuesta fue modificada hace 8 años, 9 meses por
Carlos Longarela. Razón: sintáxis
Iniciador del debate
toyohg
(@toyohg)
Bien! Con la condición parece que funciona todo bien.
Sobre la segunda, ¿Cual sería el equivalente a wp_head para incluir esa parte de tag manager después de <body>?.
También he visto que incluye el código en el <head> pero muy abajo… ¿Hay forma de que lo ponga justo después de la apertura de la etiqueta tal y como recomienda Google?
y muchas gracias de nuevo por tu ayuda!
Hola @toyohg me alegro que ahora funcione. Hay un hook (gancho) para wp_head y otro para wp_footer, pero para contenido después del body tiene que incorporarlo la plantilla que utilices https://wordpress.stackexchange.com/questions/73370/how-to-inject-content-after-body
Para la prioridad en la función prueba a cambiar el tercer parámetro de 20 a 10 https://developer.wordpress.org/reference/functions/add_action/
En el tema customizr después del body hay:
<?php do_action( '__before_page_wrapper' ); ?>
Por lo que se podrías utilizar add_action('__before_page_wrapper','my_tag', 20);
Saludos.
-
Esta respuesta fue modificada hace 8 años, 9 meses por
Carlos Longarela. Razón: sintáxis
Iniciador del debate
toyohg
(@toyohg)
Con __before_page_wrapper perfecto, ya tengo la segunda parte en el body.
En cambio el haber cambiado el 20 a 10 no ha «subido» mucho el primer código. Aún así, el problema por el que inicié la consulta está resuelto así que cierro el tema.
Muchas gracias de nuevo @carloslongarela
Me alegro que ya te funcione todo ok, cambiar el tercer parámetro de add_action aumenta la prioridad con la que se ejecuta pero no siempre lo va a subir en la posición del header, depende del código de los demás plugins y tu theme, pero si te funciona correctamente yo no lo tocaría más 😉
Saludos.