Personalizar orden de los plugins en publicaciones de WordPress

13 Mar

Existen demasiados plugins para WordPress que agregan contenido al final de las publicaciones, y es normal que tengamos varios de estos activados. Éstos plugins no siempre se muestran en el orden que nos gustaría y muchas veces pensamos que este orden se debe a alguna magia cósmica o algo similar. En esta corta publicación les explicaré como cambiar el orden de visualización de estos plugins.

En nuestro caso tenemos dos plugins que agregan contenido al final de la publicación; uno que muestra información del autor de la publicación y otro para el “Me gusta” de facebook, pero por defecto no se muestran como nos gustaría.  Les mostraré de qué les estoy hablando:

Orden de los plugins antes de la modificación

 

Como pueden ver, el plugin que usamos para mostrar información del autor está sobre el plugin de facebook, y a nuestro parecer se ve algo raro… no nos gusta así.

Entonces vamos a arreglar esto, pero… cómo? Lo primero es entender cómo hacen los plugins para agregar contenido al final del contenido original de la publicación. Los plugins usan la función add_filter para procesar el contenido actual y agregarle el contenido propio del plugin. La definición de la función es la siguiente:

null   
<?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?>

Según la definición de la función, por medio de los parámetros le indicamos que el contenido que vamos a actualizar es el contenido del $tag, y lo haremos usando la función $function_to_add. Dicha función toma el contenido del $tag y lo manipula agregandole el contenido que desee (según el plugin) y retorna el contenido modificado como si fuera el contenido original para que otros plugins que vayan a hacer lo mismo traten el contenido modificado como el contenido original y así sucesivamente hasta que todos los plugins hayan procesado el contenido… espero que no sea muy enrerado eso.

Por último tenemos que con el parámetro $priority le especificamos el orden de ejecución en esta cadena. Miremos lo que dice la página de referencia de funciones de WordPress:

$priority

(integer) (optional) Used to specify the order in which the functions associated with a particular action are executed. Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.

Default: 10

En nuestro caso queremos que el plugin de facebook esté sobre la información del autor, entonces debemos modificar la prioridad de ejecución de la función del plugin que agrega el contenido al post original. Para esto buscamos la ejecución de la función add_filter dentro de los archivos del plugin. La linea del plugin de facebook, en nuestro caso, es:

null   
add_filter( "the_content", "fblb_add_facebook_button" );

Entonces tiene una prioridad de 10 (el valor por defecto) y entre menor el valor se ejecuta más rápido, por lo tanto vamos a ponerlo en 1. Quedando el código así:

null   
add_filter( "the_content", "fblb_add_facebook_button", 1 );

Ahora vamos a las publicaciones y vemos cómo el orden cambió:

Orden de los plugins después de la modificación

 

Ahora, a nuestro parecer, se ve mucho mejor la parte final de la publicación. :D

Una nota importante: Como la modificación se hace sobre los archivos de los plugins, cuando se haga una actualización es muy probable que los cambios que hayamos hecho se sobreescriban, teniendo que hacer las modificaciones nuevamente. Estén pendientes en esos casos.

Ahora queremos saber cómo les va a ustedes con las modificaciones. Algún inconveniente? Deja la pregunta e intentaremos ayudarte.

Acerca del autor

Daniel Pérez ha escrito 10 publicaciones en este blog.

THE POSTS ARE DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY. IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. Los quiero.

3 Comentarios a “Personalizar orden de los plugins en publicaciones de WordPress”