Todos sabemos esto: compras un tema premium que es realmente bueno, y además de eso, compras un complemento increíble (¡definitivamente uno en cada uno de los míos como ilustración!). Lo que menos funciona. ¿Y qué? ¿El plugin o el tema tiene errores? Aprendamos a evitar conflictos de códigos cortos de temas y complementos

La mayoría de las veces, esto sucede cuando usa códigos cortos. Digamos que acaba de comprar un complemento para encargarse de los testimonios. Estudiará la documentación detenidamente y reconocerá que es recomendable utilizar el siguiente código abreviado para consultar los testimonios: [testimonials]. Aun así, cada vez que obtenga esto, no mostrará nada.

La razón por la que los testimonios no cambian el código abreviado es por su tema Y el complemento define el código abreviado exacto equivalente.

Dado que los complementos de Recordsdata se cargan antes que los temas de Recordsdata, se sobrescriben y, en este caso, no se tienen en cuenta por completo.

Debido a esto, tuve que mostrarte un método simple para anular el registro del código corto del tema y reemplazarlo con el del complemento.

Paso 1: crea un complemento simple

Necesitamos crear un complemento simple:

<?php
/*
Plugin Establish: Steer clear of Shortcodes conflicts
Plugin URL: http://remicorson.com
Description: A bit plugin to stay away from conflicts bewteen shortcodes
Mannequin: 1.0
Creator: Remi Corson
Creator URI: http://remicorson.com
Contributors: corsonr
Textual content material Space: rc_asc
Space Path: languages
*/

Paso 2: mira si existe el shortcode

Ese es un paso esencial. Es el lugar donde confirmas la existencia de un shortcode. WordPress tiene una variable mundial «$ shortcode_tags» que comercializa las pautas de todos los códigos cortos registrados. Así que deberíamos llevar esta variable y confirmar que el código corto que estamos buscando es parte de ella.

/**
 * Take a look at if a shortcode is already registered
 *
 * @since 1.0
 *
 * @param $shortcode string The shortcode slug to test
 *
 * @return void
 */
function rc_asc_shortcode_exists( $shortcode = false ) {
	
	world $shortcode_tags;

	//echo '<pre>'; var_dump($shortcode_tags); echo '</pre>';
 
	if ( ! $shortcode )
		return false;
 
	if ( array_key_exists( $shortcode, $shortcode_tags ) )
		return true;
 
	return false;

}

Esa es la función genérica que usaremos en una función específica adicional junto con el slug de código corto que estamos buscando. Esta función devuelve VERDADERO si el código corto está presente o FALSO si no lo está.

Paso 3: quita el shortcode y registra el nuevo

La siguiente función usa el rc_asc_shortcode_exists () que acabamos de crear. Simplemente confirma la existencia del código corto, lo reemplaza si existe o agrega el código corto si aún no está registrado.

/**
 * Take a look at if a shortcode is already registered and substitute it
 *
 * @since 1.0
 *
 * @return void
 */
function rc_asc_replace_shortcode() {

	$shortcode = 'testimonials';
	
	if( rc_asc_shortcode_exists( $shortcode ) ) {
		remove_shortcode( $shortcode );
		add_shortcode( $shortcode, 'my_testimonials_function' );
	} else {
		add_shortcode( $shortcode, 'my_testimonials_function' );
	}
}

Paso 4: Defina la nueva ejecución de shortcode

¡Todo lo que tiene que hacer es proporcionar el contenido de la función «my_testimonials_shortcode ()» y se ejecutará!

/**
 * Creates the model new shortcode
 *
 * @since 1.0
 *
 * @return void
 */
function my_testimonials_function() {

	return 'this replaces the sooner shortcode!';
}

Como probablemente pueda ver, el shortcode declarado anteriormente ahora es modificado por el shortcode que se va a crear. Así es como nos mantenemos alejados de los conflictos de códigos cortos de temas y complementos