Yoast es uno de los más conocidos plugins de WordPress para optimizar el SEO de nuestra página. Algunas veces nos encontramos que no queremos que cargue en una página o una entrada porque queremos hacer cambios manuales o porque interactua con otro plugin.
Este era mi caso, en una página de un cliente tenía instalado un plugin de preguntas y respuestas y cada vez que activaba Yoast triplicaba los campos del formulario.
Me estaba dando más de un quebradero de cabeza encontrar donde se producía el error al cargar el shortcode. Finalmente busqué como hacer que no cargue Yoast en esa página en concreto.
Buscando, encontré en Github la siguiente función:
<?php
/********* DO NOT COPY THE PARTS ABOVE THIS LINE *********/
/* Remove Yoast from front and back end for a single post or page
* Credit: Dodinas https://stackoverflow.com/questions/37845968/disable-wordpress-yoast-seo-on-single-page
* Last Tested: Jul 13 2018 using Yoast SEO 7.8 on WordPress 4.9.7
*********
* DIFFERENT POST TYPES
* Post: Change 123456 to the post ID
* Page: Change is_single to is_page and 123456 to the page ID
* Custom Post Type: Change is_single to is_singular and 123456 to the 'post_type_slug'
Example: is_singular( 'cpt_slug' )
*********
* MULTIPLE ITEMS
* Multiple of the same type can use an array.
Example: is_single( array( 123456, 234567, 345678 ) )
* Multiple of different types can repeat the if statement
*/
add_action( 'template_redirect', 'remove_wpseo' );
function remove_wpseo() {
if ( is_single ( 123456 ) ) {
global $wpseo_front;
if ( defined( $wpseo_front ) ) {
remove_action( 'wp_head', array ($wpseo_front, 'head' ), 1 );
} else {
$wp_thing = WPSEO_Frontend::get_instance();
remove_action( 'wp_head', array( $wp_thing, 'head' ), 1 );
}
}
}
Fue añadirla al functions.php del tema con el ID de la página y desaparecer el problema.
Actualización: En las nuevas actualizaciones de Yoast hay que usar la función: $front_end = YoastSEO()->classes->get( Yoast\WP\SEO\Integrations\Front_End_Integration::class ); remove_action( ‘wpseo_head’, [ $front_end, ‘present_head’ ], -9999 );
Muchas gracias a Angi por compartir su conocimiento con todos.