Crear un plugin con dependencias
Estoy intentando extender la funcionalidad de otro plugin. Necesito obtener datos de él en un array para usarlos de una manera diferente a como lo hace el plugin original (en este caso, los plugins WPMUDev Categories y Listings). ¿Hay algo en el Codex? ¿Cómo puedo crear un plugin que pueda usar las funciones de otro plugin? ¿Puedo extenderlos y construir las funciones de los nodos padres? No estoy seguro si estos plugins están usando clases o simplemente funciones directas.
Solo estoy intentando obtener datos del plugin en un widget de sidebar (en un elemento de formulario option), pero eventualmente también usaré esto para el área de contenido mediante shortcodes personalizados. Por ahora solo necesito un punto de partida.

Sí, es posible crear un plugin que extienda otro plugin. Aquí hay algunas ideas sobre cómo podrías hacerlo:
Un plugin puede configurar sus propios hooks de acción y filtro (usando las funciones
do_action
yapply_filter
) al igual que lo hace el núcleo de WordPress. Si el plugin que deseas modificar hace esto, puedes usar estos hooks para cambiar la funcionalidad.Si un plugin utiliza una estructura orientada a objetos, puedes extender las clases y construir sobre el plugin original.
Puedes leer los datos almacenados en la base de datos por el plugin original y utilizarlos en el código de tu plugin.
Puedes llamar a cualquier función del plugin original que desees, después de verificar que el plugin esté activo y cargado (ver más abajo). Solo ten en cuenta los posibles efectos que la función pueda tener además del valor devuelto.
Necesitarás verificar si el plugin original está activado. Podrías usar la función is_plugin_active
; sin embargo, esta solo funciona en las páginas de administración. Alternativamente, podrías usar function_exists
o class_exists
para verificar si una función o clase específica del plugin original está disponible, lo que te indicaría que está en ejecución.
Recuerda que cada vez que el plugin original se actualice, debes probar tu plugin con la nueva versión para buscar cualquier novedad que pueda entrar en conflicto con tu plugin.
