Este tutorial de desarrollo de WordPress Plugin captura los pasos que pasé en un proyecto real, incluidos los errores que cometí y la forma en que los solucionamos. El artículo de esta semana muestra cómo crear un complemento de WordPress desde cero. En lugar de mostrarle el código completado, escribí un tutorial de complementos de WordPress Step-Step, sorprendiendo los pasos que realmente fui en un proyecto de complemento real, incluidos los errores que cometí y la forma en que los rechacé. Por lo tanto, este artículo está diseñado para brindarle una perspectiva sobre el proceso real de un desarrollador de WordPress para crear un complemento de WordPress, comenzando solo desde una necesidad de características. Los procesos de otros desarrolladores serían diferentes de los míos: muchos de lo que verá a continuación son mis propios enfoques para el proceso de desarrollo, que no puede ver en el código final.
Siga leyendo para un ejemplo real de desarrollo de paso por paso, incluidos errores, y consulte la sección de conclusión para pensar sobre el proceso de desarrollo de complementos de WordPress. El complemento de desarrollo WordPress: comience con las características necesarias Recuerde que “Escriba un complemento de WordPress desde cero” significa “Agregue cualquier código que desee en WordPress”, por lo que lo que necesita aprender es un conjunto de procesos. Es importante tener en cuenta que “escribir un complemento de WordPress desde cero” significa “Agregue absolutamente cualquier código que desee en WordPress”: lo que escribe depende por completo, 100% de la necesidad de funciones.
Como resultado, no hay respuesta a “cómo escribir un complemento de WordPress”, así como una respuesta a “Cómo cocinar una comida”. (¿Por qué tiene hambre?) En cambio, lo que puede aprender son procesos de desarrollo de arados, utilizando complementos específicos como ejemplos que aprenden esos procesos. Descripción de la necesidad de características para este proyecto de desarrollo del proyecto, hemos elegido algo que realmente será útil para nuestra contabilidad interna en WPShout. Aquí está la característica necesaria: “Necesito un complemento para decirme qué publicaciones (de cualquier tipo de publicación) se han publicado hasta ahora en este mes calendario en WPShout y quiénes eran sus autores”. Un complemento para un solo sitio (no ancho lanzar). Una nota importante: escribí este complemento como solo para un sitio. En otras palabras, es el tipo de complemento que un freelancer de WordPress escribiría para un solo cliente, y no uno que lanzaría para posibles miles de usuarios en el almacén de complementos de WordPress. Debido a que este complemento es solo para un solo usuario, puedo codificarlo mucho más simple, sin la necesidad, por ejemplo, para que el complemento se pueda extender con ganchos o para hacer nombres y traducciones elaborados. Finalmente, antes de comenzar: el complemento a continuación (como era de esperar) se basa en el conocimiento de PHP en general y el código PHP de WordPress específicamente. Si desea sentirse más cómodo con ellos, nuestro curso de desarrollo de WordPress Up and Running es la mejor manera de aprender.
¿Quieres aprender seriamente el desarrollo de WordPress? Despierta y corre hoy
En funcionamiento está nuestro curso completo “Aprende el desarrollo de WordPress”.Ahora, en la tercera edición actualizada y extendida, ha ayudado a cientos de compradores felices a aprender el desarrollo de WordPress de una manera rápida, inteligente y completa. “Creo que cualquiera está interesado en aprender WordPress necesita este curso.Antes de comprar en funcionamiento, aprendí un código de WordPress, pero me faltaba la dirección.Ver los videos del curso era como muchas luces encendidas.Pasé de estar vagamente familiarizado con la forma en que los temas, las funciones y el propio WordPress trabajan en su control.Todo se hizo mucho más claro.

Recomiendo este curso a todos los que quieran escuchar “.- Jason, desarrollador de WordPress

¡Da el siguiente paso en tu viaje de desarrollo de WordPress!
Despierta y corre ahora
Con esto, ¡profundicemos en los pasos que seguimos para desarrollar este complemento!El tutorial de desarrollo de palabras por paso de los complementos de WordPress son los pasos que seguí, con el código completo para cada paso.1. Simplemente haga algo < */ add_action ('init', 'wpshout_do_ting');function wpshout_do_do_ing () {if (! isset ($ _get ['wpsdt')): return;Terminara si;var_dump ("aquí");morir;} Notas sobre el paso 1 Este paso es solo para asegurarse de que WordPress escuche mi complemento y pueda hacer que el complemento imprima algo en la pantalla.Si tiene curiosidad sobre el complemento de WordPress Boilerplate en la parte superior que realmente registra el complemento en sí, consulte nuestra guía rápida sobre este tema.
Tenga en cuenta el truco if (! Isset ($ _get ['wpsdt')): truco que usé aquí. Use la variable superglobal $ _get un PHP para ejecutar el código de complemento si y solo si la URL tiene una cadena de consulta WPSDT. A menudo uso este truco en el desarrollo del complemento, porque es un interruptor fácil de "inicio/parada" para el complemento, lo que me permite ejecutarlo solo cambiando manualmente los parámetros de URL. Tenga en cuenta que también me conecto al gancho de acciones init de WordPress. ¿Por qué? Porque quiero que mi complemento se ejecute antes que cualquier otra cosa y no quiero pensar en ello. Por lo tanto, llamé a mi función hoced wpshout_do_to_thing (): porque sé que no causará una colisión de espacio de nombre (wpshout_ es muy simple y lo suficientemente bueno para funcionar) y no quiero pensar en ello. Lo haremos bien más tarde.var_dump (); morir; var_dump (); morir; El modelo que uso aquí es parte de mi pan y en el desarrollo del complemento de WordPress, porque me permite ver exactamente lo que el complemento está saliendo actualmente y luego detiene cualquier otro proceso de PHP que pueda funcionar más adelante. Nunca haga esto de una manera que afecte a los usuarios, obviamente, o verán un sitio completamente roto. El resultado del código anterior, cuando paso la cadena de consulta WPSDT, es:
2. Interrogue las publicaciones recientes de todos los tipos de publicaciones 5, ‘post_type’ => ‘any’, ‘post_statush’ => ‘publish’, ‘orderby’ => data ‘,’ orden ‘=> desc’,); $ Query = new WP_Query ($ args); var_dump ($ consulta); morir; } Notas sobre el paso 2 Ahora escribimos un wp_query personalizado y var_dump () el resultado para asegurarnos de que funcione. La consulta en sí es para “las cinco publicaciones más recientes, de cualquier tipo de publicación, cuya publicación se publica”, que es en parte lo que queremos (cualquier tipo de publicación, el estado de la publicación publicada) y en parte no lo que deseamos que deseamos (Los cinco más recientes). Primero hacemos la parte fácil. Este paso conduce a la siguiente salida. Lo bueno es que la propiedad de publicaciones del objeto var_dump () ed wp_quey es una matriz de cinco elementos. Si sabe lo suficiente sobre cómo funciona WP_QUEY, sabe que el número de publicaciones refleja el número de publicaciones realmente tomadas en esa consulta. En otras palabras, incluso logramos obtener cinco publicaciones.
3. Investigue cómo interrogar todas las publicaciones publicadas este mes ahora estamos en la parte que no sé cómo hacerlo, por lo que no escribiré un código de complemento en este paso. Lo que no sé hacer es: ¿cómo escribo una WP_Query que solo toma las publicaciones publicadas en este mes calendario? (Recuerde, eso significaría “1-10 de noviembre” el 10 de noviembre, no “los últimos 30 días”). Hora de Google, que es una parte tan importante del desarrollo del complemento de WordPress (y el desarrollo de WordPress en general ), que lo pongo en negrita: hora de Google. Y cuando accedes a Google, es muy importante saber dos cosas:
Cómo escribir sus consultas de Google.

Cómo elegir los resultados relevantes.
La búsqueda de Google que hice fue “Fecha de publicación de WPQuery”. ¡Prueba la búsqueda por ti mismo! ¿Qué parece relevante? Pensé que lo más adecuado era un artículo de desbordamiento de pila titulado Publicaciones de interrogación publicados después de una cierta fecha en WordPress. En sus respuestas, menciona que puedes pasar un elemento de datos de matriz

‘Date_query’ => array (‘después’ => array (‘año’ => 2012, ‘mes’ => 3, ‘día’ => 1,),), está bien, pero no queremos “mes 3” , Queremos este mes. ¿Cómo decimos este mes en PHP? La búsqueda de Google que realicé fue para “PHP este mes” y me llevó aquí: https://stackoverflow.com/questions/5347217/simplest-way-to-dish-current-monthand-and year- me gusta-aug -2016 -in -php Esto me llevó al siguiente código para data_query: ‘data_query’ => array (‘después’ => array (‘año => data (‘ y ‘),’ mes ‘=> data (‘ m ‘) , ‘Day’ => 1,),), 4. Combine la consulta dada con la consulta principal -1, ‘post_type’ => ‘any’, ‘post_statush =>’ publish ‘,’ data_query ‘=> array (‘ después ‘=> array (‘ año => data (data (‘data ( ‘y’), ‘mes’ => data (‘m’),), ‘day’ => 1,), ‘Orderby’ => data ‘,’ Order ‘=> Desc’,); $ Query = new WP_Query ($ args); var_dump ($ consulta); morir;
} Notas sobre el paso 4 En este paso, intenté data_query el parámetro date_query de mi aprendizaje de Google en WP_Query existente. También cambiamos Post_per_Page a -1, de modo que recibamos todas las publicaciones que nos interesan. La ejecución del código anterior da este resultado: ¿es bueno o malo el código? Es malo. ¿Por qué? Porque muchos de los elementos post_date que aparecen en var_dump () datan de febrero o enero de este año. Nuestra consulta ciertamente no se hace cargo de las publicaciones que debería hacerse cargo. Es hora de averiguar qué salió mal. 5. Esto no ha funcionado, depurar -1, // ‘post_type’ => ‘any’, // ‘post_statush’ => ‘publish’, // ‘data_query => array (//’ After ‘=> array (//’ año ‘=> data (‘ y ‘), //’ mes ‘=> data (‘ m ‘), //), //’ day ‘=> 1, //) , // ‘Orderby’ => ‘Data’, // ‘Order’ => ‘Desc’, //); // $ query = new WP_Query ($ args); $ después = array (‘año’ => data (‘y’), ‘mes’ => data (‘m’),); var_dump ($ después); morir; } Notas sobre el paso 5 En este paso, hago dos cosas:
Comenta (¡pero no elimine!) El código que se comporta extraño.
Trate de obtener visibilidad en la parte de ese código que se comporta de manera extraña.
Lo que se comporta extraño son los datos posteriores a la Query.¿Por qué se comporta raro?Puede date_query en realidad no funciona o algo así, pero es más probable que haya escrito algo mal.Entonces, veamos solo si podemos inspeccionar lo que esa parte de la matriz realmente genera, haciendo una variable y var_dump () -o.Esto da este resultado:
Espera, no es correcto: la luna es una cuerda, “oct”. Date_query definitivamente espera algo numérico. Para asegurarme de que este fuera el error que cometí, busqué en Google “datos PHP” y verifiqué este resultado: https://www.w3schols.com/php/func_date_date.asp. Y sí, los datos (‘m’) imprimen las tres primeras letras del nombre en inglés. No es lo que queremos. 6. Retinty -1, ‘post_type’ => ‘any’, ‘post_statush =>’ publish ‘,’ data_query ‘=> array (‘ después ‘=> array (‘ año => data (data (‘data ( ‘y’), ‘mes’ => data (‘m’),), ‘day’ => 1,), ‘Orderby’ => data ‘,’ Order ‘=> Desc’,); $ Query = new WP_Query ($ args); // $ después = array (// ‘año’ => data (‘y’), // ‘mes’ => data (‘m’), //); var_dump ($ consulta); morir; } Notas sobre el paso 6 Este paso implica hacer comentarios sobre el código de prueba, decorar el código de consulta en sí mismo y cambiar ‘m’ con ‘m en realidad un mes numérico cuando se transmite en datos (). Ejecutar este código ofrece lo siguiente:
¿Es bueno o malo? Es malo: la propiedad de publicaciones de WP_QUEY es una matriz vacía, lo que significa que no tomé ninguna publicación. 7. Esto no funcionó, depurar -1, ‘post_type’ => ‘any’, ‘post_statush =>’ publish ‘,’ data_query ‘=> array (‘ después ‘=> array (‘ año => data (data (‘data ( ‘y’), ‘mes’ => data (‘m’), ‘día’ => 1,),), ‘Orderby’ => data ‘,’ Order ‘=> Desc’,); $ Query = new WP_Query ($ args); // $ después = array (// ‘año’ => data (‘y’), // ‘mes’ => data (‘m’), //); var_dump ($ consulta); morir; } Notas sobre el paso 7 En este paso, tuve que repetir Google para la “fecha de la publicación de WPQuery” para volver al artículo de la pila, las publicaciones de consulta publicadas después de una fecha determinada en WordPress y verificar si estaba equivocado. Sí, lo hice: por una razón extraña, puse el día como mi propio elemento matriz de date_quey, en lugar de seguir el ejemplo del código para ingresar el día en el elemento date_quey. Remediar y ejecutar el código nuevamente proporciona lo siguiente:

¿Es bueno o malo? Es bueno: tomé más de diez publicaciones, las diez con propiedades post_datadas en el mes actual. ¡Progreso! 8. UI y Shortcode -1, ‘post_type’ => ‘any’, ‘post_statush =>’ publish ‘,’ data_query ‘=> array (‘ después ‘=> array (‘ año => data (data (‘data ( ‘y’), ‘mes’ => data (‘m’), ‘día’ => 1,),), ‘Orderby’ => data ‘,’ Order ‘=> Desc’,); $ Query = new WP_Query ($ args); ob_start (); while ($ query-> have_posts ()): $ query-> the_post (); ?>
por on <? wp_reset_postata (); return ob_get_clean ();

} Notas sobre el paso 8 Ahora las cosas pesadas están listas, por lo que es hora de llamar a nuestra función colgando algo estúpido, decidiendo una interfaz con el usuario y haciendo una limpieza general. Este es un complemento creado por y para un solo desarrollador de WordPress y, por lo tanto, la elección natural de la interfaz parece ser un código corto. Exchange add_action () en add_shortcode () y llame a la función de código de función algo preciso, wpshout_show_this_months_posts_by_author (). Utilizo una herramienta preferida para el desarrollo de complementos en función de los códigos cortos, para que la salida de PHP, para controlar qué marcado, devolverá el código corto, sin tener que construir una variable de retorno gigantesca. En esa área con búfer de salida, uso etiquetas de plantilla de WordPress gratuitas como The_Author () y the_date () porque estamos en el ciclo de consulta personalizada. También recordé que es bueno llamar a wp_reset_postata () después de ejecutar una consulta personalizada, pero no podía recordar si esto o wp_reset_query () era el derecho a usar. Busqué en Google “wp_reset_postdata o wp_reset_query” y encontré este artículo: https://wordpress.stackexchange.com/questions/144343/wp-reset-or-wp-reset-quey-loop, lo que él concluyó que wp_reset_postata () funcionará bien. Ejecutar el complemento en una página con código corto wpshout_show_this_months_posts_by_author ofrece lo siguiente:
Es bastante bueno, pero ¿cuál es la fecha que falta en la siguiente? 8. Entonces, the_date () ¿Es totalmente extraño? -1, ‘post_type’ => ‘any’, ‘post_statush =>’ publish ‘,’ data_query ‘=> array (‘ después ‘=> array (‘ año => data (data (‘data ( ‘y’), ‘mes’ => data (‘m’), ‘día’ => 1,),), ‘Orderby’ => data ‘,’ Order ‘=> Desc’,); $ Query = new WP_Query ($ args); ob_start (); while ($ query-> have_posts ()): $ query-> the_post (); ?>
por on <? wp_reset_postata (); return ob_get_clean ();
} Notas sobre el paso 9 Creo que nuestra llamada a The_Date () no funciona como quiero, así que estoy buscando en Google "WordPress the_date". Comienzo con la página oficial: https://develooper.wordpress.org/reference/functions/the_date/ no me dice mucho. También veo https://wordpress.stackexchange.com/questions/52489/the-date-not- office y lo miro. Parece que the_date () solo mostrará una publicación a la vez. Si hay dos publicaciones con la misma fecha de publicación, ya no funciona. Y también resulta que get_the_date () no tiene este problema, por lo que cambio esa línea de código desde The_Date (); un echo get_the_date (); . ¿Es este un problema extraño? Extremadamente. No tengo idea de por qué the_date () habría codificado en esta mitad interrumpida o por qué get_the_date () no compartiría el problema. Pero la ejecución del nuevo código nos da esto: y eso es exactamente lo que estamos buscando. Pensamientos generales sobre el desarrollo de los complementos de WordPress El trabajo anterior me llevó unas dos horas. ¿Es mucho o pequeño? Sería mucho tiempo escribir el código de trabajo una vez que sepa cómo escribirlo, pero es casi adecuado para lo que el complemento de WordPress se desarrolla realmente, es decir, aprendizaje, experimentación, investigación y prueba y error. En esas dos horas, hice muchas de las siguientes cosas:

Basado en el conocimiento profundo del PHP principal y las API básicas de WordPress.

Estaba buscando en Google cosas que olvidé o no sabía cómo hacerlas.

Cometiendo errores.
Solución de problemas de errores.

Y en esas dos horas, no hice ninguna de las siguientes cosas:
La escritura del código que se basa en el codificador es realmente inteligente, en lugar de tener un conocimiento profundo.

Basado en herramientas, idiomas súper obstruidos o “hacks” que solo se conocen a los niños geniales. Por lo tanto, es el desarrollo de complementos de WordPress, especialmente para complementos relativamente simples, como este, que un profesional independiente escribiría para un solo cliente. Todo es utilizar su conocimiento existente para hacer cosas fáciles y saber cómo adquirir y combinar nuevos conocimientos para hacer cosas difíciles, mientras prueban y remedia continuamente los errores que aparecen, tanto los que desafían el PHP como la causa de WordPress (el El mejor ejemplo anterior es nuestro problema the_date ()) que a veces es sistemas de software extraños.
La mejor manera de aprender el desarrollo de WordPress despierta y ejecuta hoy
En funcionamiento está nuestro curso completo “Aprende el desarrollo de WordPress”. Ahora, en la tercera edición actualizada y extendida, ha ayudado a cientos de compradores felices a aprender el desarrollo de WordPress de una manera rápida, inteligente y completa. Esto es lo que tienen que decir:
“Otros cursos que casi siempre he intentado no tienen explicaciones claras sobre lo que WordPress hace las cosas de cierta manera o cómo funcionan juntas. En funcionamiento hace todo esto y todo se explica claramente en un lenguaje fácil de entender “. -Caroline, WordPress Freelancer
“En funcionamiento realmente me unió todo. Ya conocía algunas de las canciones, pero el curso completó los objetivos y ofreció una comprensión adecuada de cómo funciona realmente WordPress. Me resultó fácil seguir, dando exactamente el profundo conocimiento profundo en la secuencia correcta “. –Gugues, desarrollador web independiente
Despierta y corre ahora



homefinance blog