Conectarse a los complementos

12

Estoy trabajando en un complemento que idealmente podría hacer cosas cuando un usuario hace algo a través de un complemento diferente .

Puedo agregar enlaces personalizados en esos complementos, pero obviamente esto no funcionaría bien cuando quiero distribuir mi complemento. ¿Hay una buena manera de agregar ganchos a los complementos de otras personas desde mi propio complemento? ¿Es la única solución real que le pide al autor que incluya ganchos personalizados para que otros desarrolladores puedan desarrollar su trabajo?

Ejemplo: quiero hacer algo en mi complemento cuando alguien retweets un artículo. Si hubiera un gancho personalizado en el popular complemento de retweet que podría conectar y disparar, sería genial. No hay, así que puedo modificar su complemento para incluirlo, pero eso solo funciona para mi copia, y no quiero intentar redistribuir eso.

¿Solo tenemos que intentar ser mejores desarrolladores de complementos para que todos podamos jugar bien juntos?

    
pregunta Ryan Elkins 14.08.2010 - 21:10

4 respuestas

6

@Ryan Elkins:

Supongo que la respuesta depende de la importancia que tenga para usted cada caso de uso. En algunos casos, sería algo que necesitaría rápido y sucio, en otros podría ser un caso de uso más importante. Aquí están las dos cosas que vienen a la mente:

Busque ganchos alternativos en el núcleo de WordPress

Si es algo rápido y sucio algunas veces, puedes usar otros enganches en sentido descendente desde el núcleo para modificar lo que necesites, o enganches en sentido ascendente y en sentido descendente mediante el uso de ob_start() / ob_end_clean() (consulta @Todd Perkins responde a" Tratar con una salida HTML grande a través del código del complemento " para un ejemplo de código.)

Para rastrear los enganches que puede usar, eche un vistazo al complemento de enganches para instrumentos Publiqué ayer para ayudarte a encontrar los ganchos que potencialmente puedes usar.

Envíe un parche con su gancho deseado al desarrollador de complementos

Si su caso de uso es más importante para usted o para la comunidad, le recomiendo seguir adelante y agregar el enlace que necesita al complemento. Luego, pruébelo bien para asegurarse de que realmente aborda su caso de uso, después de lo cual puede enviar un parche al desarrollador del complemento con la esperanza de que lo aplique. De esta manera, podrá hacerlo lo más fácil posible dándoles un código probado y podrá resolver el caso usted mismo para asegurarse de que realmente es lo que necesita. No puedo decirle con qué frecuencia pensé que necesitaba un determinado gancho solo para encontrarlo. Después de intentar implementar uno, necesitaba un gancho pero que era diferente al que imaginé por primera vez.

Si no está familiarizado con la creación de un parche aquí, es un buen artículo sobre parches del núcleo de WordPress para el que más se aplica a parches de complementos y para el que no lo es, será obvio qué hacer:

Espero que esto ayude?

P.S. Una cosa que encuentro un poco decepcionante y que su pregunta responde es el porcentaje de complementos que están diseñados solo para usuarios finales, es decir, que no tienen ningún gancho propio. ¿Imagina si WordPress fue diseñado como la mayoría de los complementos? Sería inflexible y una solución muy especializada.

¿Quizás las cosas serían diferentes si WordPress tuviera la capacidad de instalar automáticamente los complementos de los que dependían otros complementos? Tal como es, normalmente tengo que escribir muchas de las funciones que necesito desde cero porque los clientes quieren las cosas de cierta manera y los complementos disponibles, mientras que el 90% no me permite la flexibilidad de actualizar el 10% restante.

Realmente deseo que aquellos que lideran la comunidad de WordPress identifiquen una manera de asegurar que los complementos sean recompensados por seguir las mejores prácticas (como agregar ganchos para otros desarrolladores) al igual que las buenas respuestas se recompensan en un sitio StackExchange.

    
respondido por el MikeSchinkel 14.08.2010 - 23:45
2
  

¿Solo tenemos que intentar y ser mejores desarrolladores de complementos para que podamos jugar bien juntos?

Para empezar, sí.

  

¿Es la única solución real que le pide al autor que incluya enlaces personalizados para que otros desarrolladores puedan desarrollar su trabajo?

Esa sería una buena solución.

También puedes copiar el otro complemento y simplemente agregar cualquier cambio, aunque eso sería más complicado.

    
respondido por el Arlen Beiler 14.08.2010 - 21:37
2

Creo que respondes tu pregunta en la pregunta, de modo que se vuelve un tanto retórica.

Obviamente, estás hablando de un sistema similar al que Google recomienda con Android y el sistema Intent, que una aplicación puede publicar acciones que puede realizar en nombre de otras aplicaciones, que luego pueden conectarse a ellas y pasar. datos de ida y vuelta. Personalmente creo que es algo a lo que debemos dirigirnos como buenos desarrolladores: usamos WordPress porque ya es increíble, lo suficientemente impresionante como para decidir si usarlo o desarrollar un producto similar similar en la mayoría de los casos. El repositorio de complementos en sí mismo es de nuevo lo mismo, principalmente como usuario final + desarrollador. ¿Por qué desarrollar un complemento de Twitter cuando hay uno perfectamente bueno?

El mismo 'por qué desarrollar duplicados' se encuentra en el punto crucial de su pregunta aquí. El sistema Android Intent permite que las aplicaciones utilicen funciones ya creadas, y pasen datos entre ellas, y esto es popular y se usa a menudo, debido a que está muy presionado. Ya hay un sistema similar implementado en WordPress, pero rara vez se usa más allá de los ganchos presentes en el código del núcleo, que se usan mucho.

Sería beneficioso para la comunidad si hubiera más enlaces en los complementos personalizados, pero como usted dice, no hay una manera fácil de agregar enlaces cuando / donde los necesite.

En cuanto al complemento de Twitter al que desea conectarse, envíe un correo electrónico al autor, estoy seguro de que estaría encantado de agregarlos por usted.

Si hay un lugar que crees que sería un buen lugar para poner un gancho en tu complemento, hazlo y documenta bien. Si más personas comienzan a poner ganchos en los complementos, o si hay un impulso general para hacerlo, eventualmente sucederá.

Entonces, para responder a tu pregunta final de:

  

¿Solo tenemos que intentar ser mejores desarrolladores de complementos para que todos podamos jugar bien juntos?

Sí.

Editar: he pensado algo más sobre la pregunta real y la mejor manera de implementar enganches, ¿no podría agregar una acción que se ejecutaría si la función en particular que está intentando ejecutar del complemento estuviera presente? p>     

respondido por el nobody 14.08.2010 - 21:44
0

define una función:

function my_footer() {
    do_action('my_footer');
}

ahora puedes enganchar en este gancho: add_action('my_footer', 'example_function', 1); # Para más información, consulte en mi publicación .

    
respondido por el bueltge 14.08.2010 - 21:35

Lea otras preguntas en las etiquetas