Comprobar si un complemento de WordPress está activo

Comprobar complemento WordPress está activo. Para gestionar mi blog uso el plugin Advanced Custom Fields – ACF para los campos personalizados. Por ello, he creado una serie de complementos (plugin) en las que incluyo código para mostrar los datos a través del ACF.

Estos códigos funcionan a la perfección —o por lo menos eso creía— hasta que se me ocurrió preguntarme. ¿Qué pasaría si desactivo el Advanced Custom Fields y dejo activo los complementos que he creado?

Para responder dicha pregunta me fui a mi sitio web de pruebas y desactivé el ACF. El resultado fue que el blog dejó de funcionar. Era un resultado esperado puesto que en dichos complementos (plugin) había incorporado una etiqueta que depende exclusivamente de del ACF – “get_field”.

Los complementos que había creado no podían quedarse así, puesto que, de desactivar el Advanced Custom Fields, el sitio web no funcionaría, por lo que me puse a buscar la solución al problema.

La solución la encontré en el Codex WordPress que consiste en lo siguiente:

  1. Incorporar al script que conforma el complemento o plugin la función is_plugin_active para verificar si el complemento está activo, en mi ejemplo el Advanced Custom Fields.
if(is_plugin_active('plugin-directory/plugin-file.php')) {
}

Dónde plugin-directory es la carpeta dónde está el plugin, y plugin-file.php es el nombre específico del archivo del plugin.

En mi caso:

if(is_plugin_active('advanced-custom-fields/acf.php')) {
}

Dónde advanced-custom-fields es el nombre de la carpeta, y acf.php es el nombre específico del archivo del plugin.

  1. En los corchetes va la función del complemento que previamente había creado.

Quiere decir que pasamos de esto:

function insertautor($content) {
if(get_field('Autor')):
echo '<h2 itemprop="author">', the_field("Autor"),'</h2>';
endif;
return $content;}
add_filter ('the_content', 'insertautor', 1, 1);

A esto:

if (is_plugin_active('advanced-custom-fields/acf.php' ) ) {
function insertautor($content) {
if(get_field('Autor')):
echo '<h2 itemprop="author">', the_field("Autor"),'</h2>';
endif;
return $content;}
add_filter ('the_content', 'insertautor', 1, 1);
}

Luego de hacer las pruebas correspondientes, las modificaciones funcionaron a la perfección. Por lo que, si desactivo el ACF, el sitio web no falla y sigue funcionando con normalidad, aunque claro, no muestra la información de los campos personalizados.

Asimismo, si el plugin ACF está activo y los complementos personalizados que he creado están activos, entonces se mostrará la información. Y, finalmente, si el Plugin ACF o los complementos personalizados están desactivados, el sitio web sigue funcionando con normalidad.

Referencia: https://codex.wordpress.org/Function_Reference/is_plugin_active

5/5 - 11 votos