Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
¿Cómo crear ganchos como en Wordpress para un CMS personalizado?

Quedé impresionado cuando descubrí ganchos de WordPress como Acciones y Filtros, donde puede modificar o cambiar toda la funcionalidad de su CMS solo desde una función personalizada y su gancho. Estoy buscando el método o el patrón de arquitectura o incluso el código de ejemplo, que explicará cómo funciona. ¿Qué tiene que escribir en su clase personalizada (por ejemplo) para permitirle cambiar algunas características principales? No importa CMS o lenguaje de programación. Podría ser WordPress o JS/PHP CMS personalizado.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto se puede hacer de muchas maneras, pero el concepto básico es bastante simple. Para esto te mostraré lo que hace WordPress a un alto nivel usando estas dos funciones:

 apply_filters($name, $value, …$context) { global $filters; foreach($filters[$name] ?? [] as $callback) { $value = $callback($value, …$context); } return $value; } add_filter($name, $callback) { global $filters; if(!isset($filters[$name])){ $filters[$name] = []; } $filters[$name][] = $callback; }

La función add_filter es donde los programadores registran su interés en cambiar algo. WordPress define el parámetro $name y es exclusivo de la ubicación en la que se usa en el código (o lo suficientemente exclusivo siempre que varias personas que llaman hagan lo mismo con los datos). El parámetro $callback es un código personalizado para hacer algo con los datos y devolver algo. Todo aquí se almacena en una matriz global.

La función apply_filters es donde el código de WordPress recorre la matriz global para una clave con nombre específico que devuelve una submatriz donde cada elemento es una devolución de llamada. Luego llama a cada devolución de llamada con el $value de interés específico, junto con cualquier $context opcional que alguien pueda necesitar.

Me falta un montón de cordura comprobando aquí, pero esa es la esencia. En el caso de WordPress, en realidad hay un objeto dedicado para los filtros que se almacena en la matriz global, y hay prioridades para que los programadores puedan insinuar el orden en que se registra su $callback .

El uso es muy simple en el código central entonces:

 // Normal code here $data = get_data(); // See if anyone wants to change it $data = apply_filters('after_get_data', $data); // Back to normal code

Las acciones son similares a los filtros y, en el caso de WordPress, comparten la misma lógica central. La única diferencia importante es que las acciones no devuelven nada, sino que comparten el mismo patrón de un $name común junto con algunos argumentos opcionales.

Otra forma en que WordPress permite extensiones es a través de código conectable. Básicamente, hay un archivo que se cargó muy tarde con un montón de funciones incluidas en if(!function_exists('…')){} . Esto permite que otros programadores creen estas funciones y WordPress usará la versión de los programadores en lugar de la del núcleo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!