Crear un complemento con dependencias

21

Estoy tratando de ampliar la funcionalidad de otro complemento. Necesito obtener datos de él en una matriz para usar de manera diferente al complemento original. (En este caso, plugins WPMUDev Categorías y Listados). ¿Hay algo en el Codex? ¿Cómo puedo crear un complemento que pueda usar otras funciones de complementos? ¿Puedo ampliarlos y construir las funciones de los nodos principales? No estoy seguro de si estos complementos están usando clases o simplemente funciones directas.

Solo estoy tratando de obtener datos del complemento en un widget de barra lateral (en un elemento de opción de formulario), pero eventualmente lo usaré también para el área de contenido mediante el uso de códigos cortos personalizados. Por ahora solo necesito un lugar para comenzar.

DWils
fuente
44
FWIW hay un ticket de pista sobre este mismo tema core.trac.wordpress.org/ticket/22316
Norcross

Respuestas:

22

Sí, es posible crear un complemento que amplíe otro complemento. Aquí hay algunas ideas sobre cómo podría hacerlo:

  1. Un complemento puede configurar su propia acción y enganchar filtros (usando las funciones do_actiony apply_filter) al igual que lo hace el núcleo de WordPress. Si el complemento al que se dirige hace esto, puede usar estos ganchos para cambiar la funcionalidad.

  2. Si un complemento utiliza una estructura orientada a objetos, puede ampliar las clases y construir sobre el complemento original.

  3. Puede leer los datos almacenados en la base de datos por el complemento original y usarlos en su código de complemento.

  4. Puede llamar a cualquier función desde el complemento original que desee, después de haber comprobado que el complemento está activo y cargado (consulte a continuación). Solo tenga en cuenta los efectos que pueda tener la función además del valor devuelto.

Deberá verificar si ese complemento original está activado o no. Podrías usar la is_plugin_activefunción; sin embargo, esto solo funciona en las páginas de administración. Alternativamente, puede usar function_existso class_existspara verificar si una función o clase particular del complemento original está disponible, lo que le indicaría que se está ejecutando.

Recuerde que cada vez que se actualiza el complemento original, debe probar su complemento con la nueva versión para buscar algo nuevo que pueda entrar en conflicto con su complemento.

Ben Miller - Restablece a Monica
fuente