<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archivos de programación &#187; Endless Manifesto</title>
	<atom:link href="https://kadai.com.mx/tag/programacion/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Un blog personal sobre muchas cosas, en especial videojuegos, descubrimientos y escritos al azar.</description>
	<lastBuildDate>Mon, 21 Oct 2019 15:35:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://kadai.com.mx/wp-content/uploads/2017/08/new-favicon-88x88.png</url>
	<title>Archivos de programación &#187; Endless Manifesto</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">126519727</site>	<item>
		<title>Formas de agregar scripts externos a WordPress</title>
		<link>https://kadai.com.mx/agregar-scripts-externos-a-wordpress/</link>
					<comments>https://kadai.com.mx/agregar-scripts-externos-a-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[Kadai Crosshansen]]></dc:creator>
		<pubDate>Tue, 07 Nov 2017 20:52:01 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://kadai.com.mx/?p=1027</guid>

					<description><![CDATA[<p>En algunas ocasiones deberemos agregar scripts externos a WordPress. Suena sencillo, pero cuando no están diseñados para la plataforma, puede ser un poquito complicado. Agregar un script debería de ser fácil. Y así es en la mayoría de los casos. Sin embargo hay ocasiones en las cuales los desarrolladores nunca tuvieron en mente WordPress u [&#8230;]</p>
<p>The post <a href="https://kadai.com.mx/agregar-scripts-externos-a-wordpress/">Formas de agregar scripts externos a WordPress</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En algunas ocasiones deberemos agregar scripts externos a WordPress. Suena sencillo, pero cuando no están diseñados para la plataforma, puede ser un poquito complicado.</p>



<span id="more-1027"></span>



<p class="wp-block-paragraph">Agregar un script debería de ser fácil. Y así es en la mayoría de los casos. Sin embargo hay ocasiones en las cuales los desarrolladores nunca tuvieron en mente WordPress u otro CMS.</p>



<p class="wp-block-paragraph">Es por eso que a veces se requiere de saber que tan compatible es un código.</p>



<p class="wp-block-paragraph">Por ejemplo, el siguiente es uno que alguien quería incluir en una instalación de WordPress:</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/kadai/0ef4efc69bbd8e4fa8d60d4593fa06f9">Gist</a>.
</div></figure>



<p class="wp-block-paragraph">Parece simple, ¿verdad?</p>



<p class="wp-block-paragraph">Pero al menos hay un problema evidente: Se necesita de jQuery para poder hacerlo, eso nos dice la primera línea.</p>



<p class="wp-block-paragraph">Antes de siquiera agregar este código, es importante el tener al menos una idea de lo que hace y sus necesidades. Podemos ver tutoriales en la Internet, pero sin tener una idea será difícil el encontrar una solución real.</p>



<p class="wp-block-paragraph">Si no tenemos dicha noción, no podremos agregar scripts externos a WordPress de una forma rápida y eficiente.</p>



<h2 class="wp-block-heading">Solucionando el problema de agregar scripts externos a WordPress</h2>



<p class="wp-block-paragraph">Existen muchas formas de agregar un script en WordPress, sin embargo para este ejemplo hay que tomar ciertas consideraciones. Por ejemplo que la versión de jQuery que se usa en <a href="https://digwp.com/2011/09/using-instead-of-jquery-in-wordpress/" target="_blank" rel="nofollow noopener noreferrer">WordPress es diferente</a>.</p>



<p class="wp-block-paragraph">El jQuery que está instalado viene en modo de compatibilidad. Por lo cual el símbolo “$” no va a funcionar por defecto. Si el código no fue escrito para funcionar bajo dicho modo, es decir cambiando “$” por jQuery, simplemente este arrojará errores.</p>



<p class="wp-block-paragraph">Es por ello que se necesita modificar una función alrededor del código para hacerlo funcionar. Debería quedar así:</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/kadai/0ef4efc69bbd8e4fa8d60d4593fa06f9">Gist</a>.
</div></figure>



<p class="wp-block-paragraph">De esta forma, debería de poder correr en cualquier instalación estándar de WordPress con el jQuery incluido por defecto. Solo se le hicieron algunos pequeños cambios a la función anónima para permitir usar “$” al resto del código dentro de ella.</p>



<p class="wp-block-paragraph">Este segmento de código puede ser entonces agregado de múltiples formas, dependiendo de las necesidades. En cualquier caso, debe de ser agregado al footer.</p>



<h3 class="wp-block-heading">1. Agregarlo directamente mediante un widget</h3>



<p class="wp-block-paragraph">Esta puede ser la forma más sencilla de agregar el código, pero con el inminente riesgo de que no funcione. Al menos no a la primera.</p>



<p class="wp-block-paragraph">Pero eso se puede resolver si le añadimos una función que espere a que el documento esté listo. De esta manera el script se ejecutará una vez que el documento web se haya cargado por completo.</p>



<p class="wp-block-paragraph">De esta forma, en el widget de HTML se podría poner lo siguiente:</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/kadai/0ef4efc69bbd8e4fa8d60d4593fa06f9">Gist</a>.
</div></figure>



<p class="wp-block-paragraph">No parece complicado. Además de que se puede editar directamente desde la interface web.</p>



<h3 class="wp-block-heading">2. Agregarlo mediante un hook y función</h3>



<p class="wp-block-paragraph">Usando una función y el hook “wp_footer” podemos agregar el código que queramos al final de la página. Este código lo debemos de pegar dentro del functions.php o similar.</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/kadai/0ef4efc69bbd8e4fa8d60d4593fa06f9">Gist</a>.
</div></figure>



<p class="wp-block-paragraph">Gracias a esto, el código deberá de aparecer en la zona de pie de página. No es la forma ideal pero debería de funcionar relativamente bien. Aunque imprimir código así no es la forma más elegante de resolverlo.</p>



<h3 class="wp-block-heading">3. Agregarlo correctamente mediante wp_enqueue_script</h3>



<p class="wp-block-paragraph">Esta es la <a href="https://developer.wordpress.org/reference/functions/wp_enqueue_script/" target="_blank" rel="nofollow noopener noreferrer">forma correcta</a> de agregar un script jQuery, ya que incluso permite que se pueda “optimizar”. Usar correctamente el hook wp_enqueue_scripts permite hacer muchas cosas a la hora de manipular los script a agregarse.</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/kadai/0ef4efc69bbd8e4fa8d60d4593fa06f9">Gist</a>.
</div></figure>



<p class="wp-block-paragraph">Así es, esto es todo lo que se tiene que hacer para agregarlo. Con ello el script será incluido en el front-end para los visitantes, además de que podrá ser optimizado por los plugins de caché disponibles.</p>



<p class="wp-block-paragraph">Pero para que funcione se debe de crear un archivo *.js y almacenarlo en un lugar accesible dentro del servidor web. O en su defecto se puede aportar una dirección URL completa.</p>



<p class="wp-block-paragraph">Este método también permite convertir el código fácilmente en un plugin. Lo cual puede facilitar la vida a la hora de realizar actualizaciones. Permitiendo así mantener menos código.</p>



<h3 class="wp-block-heading">¿Qué hay de los plugins para agregar scripts a WordPress?</h3>



<p class="wp-block-paragraph">Otra de las formas para agregar scripts externos a WordPress es el usar un plugin que facilite el trabajo. Hay muchos de ellos en <a href="https://es-mx.wordpress.org/plugins/tags/custom-js/" target="_blank" rel="noopener nofollow noreferrer">el repositorio</a> que permiten hacerlo. La mayoría con diversas opciones diferentes para cada caso.</p>



<p class="wp-block-paragraph">Sin embargo, los plugins no siempre solucionan el problema. El cual se agrava si no sabemos como es que JavaScript funciona. Y aún más si no se sabe detectar errores.</p>



<p class="wp-block-paragraph">Un script puede ser agregado mediante un plugin correctamente. Pero a la hora de ejecutarse, puede arrojar errores. Mismos que impiden su correcta ejecución. Estos errores muchas veces van más allá de lo que un plugin puede solucionar.</p>



<p class="wp-block-paragraph">En esos casos, es importante mirar entonces a la consola del navegador. Muchas veces encontraremos ahí que es lo que está sucediendo. Como por ejemplo el caso de la «$» de jQuery, la cual ya había explicado. O incluso otros errores como contenido mixto o errores en el código.</p>



<p class="wp-block-paragraph">Esas son cosas que requieren más pericia para ser corregidas.</p>



<h3 class="wp-block-heading">Conclusiones sobre agregar scripts externos a WordPress</h3>



<p class="wp-block-paragraph">Agregar scripts de jQuery es relativamente sencillo en WordPress. Sin embargo se deben de tener ciertas nociones para evitar problemas.</p>



<p class="wp-block-paragraph">En el caso de que algo suceda, siempre es bueno mirar la consola que ofrece el navegador web. Siempre nos dará pistas sobre lo que puede estar pasando. Para el desarrollador, la consola será siempre una de las mejores herramientas.</p>



<p class="wp-block-paragraph">Además hay que recordar que la versión de jQuery que se incluye previene el uso de “$” en las funciones. Por lo cual hay que encapsular el código si nos muestra ese tipo de errores.</p>



<p class="wp-block-paragraph">Y cuando todo haya fallado. Siempre será buena idea preguntar. Ya que puede haber alguien dispuesto a ayudar.</p>
<p>The post <a href="https://kadai.com.mx/agregar-scripts-externos-a-wordpress/">Formas de agregar scripts externos a WordPress</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kadai.com.mx/agregar-scripts-externos-a-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1027</post-id>	</item>
		<item>
		<title>Hooks y Transients en WordPress</title>
		<link>https://kadai.com.mx/hooks-y-transients-en-wordpress/</link>
					<comments>https://kadai.com.mx/hooks-y-transients-en-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[Kadai Crosshansen]]></dc:creator>
		<pubDate>Sat, 01 Jul 2017 09:14:59 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[transient]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://kadai.com.mx/?p=640</guid>

					<description><![CDATA[<p>Los hooks y transients en WordPress son fáciles. Una vez que tienes una idea de donde mirar. De lo contrario estarás dando vueltas sin parar tratando de saber que son y que hacen. Saber PHP es algo que invariablemente te va a ayudar. Igualmente mirar el Codex de WordPress… pero al final del día, muchas [&#8230;]</p>
<p>The post <a href="https://kadai.com.mx/hooks-y-transients-en-wordpress/">Hooks y Transients en WordPress</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Los hooks y transients en WordPress son fáciles. Una vez que tienes una idea de donde mirar. De lo contrario estarás dando vueltas sin parar tratando de saber que son y que hacen.</p>
<p style="text-align: justify;">Saber PHP es algo que invariablemente te va a ayudar. Igualmente mirar el <a href="https://codex.wordpress.org/Plugin_API/Hooks" target="_blank" rel="noopener">Codex de WordPress</a>… pero al final del día, muchas cosas se condensan en una sola frase: Mira el código fuente.</p>
<p><span id="more-640"></span></p>
<h3>Entendiendo los Hooks y Transients en WordPress</h3>
<p style="text-align: justify;">Hay quienes han hecho un <a href="http://rachievee.com/the-wordpress-hooks-firing-sequence/" target="_blank" rel="noopener">esfuerzo para documentar</a> que hooks se usan y en que momento. Incluso puedes encontrar <a href="http://www.wpbeginner.com/wp-tutorials/how-wordpress-actually-works-behind-the-scenes-infographic/?display=wide" target="_blank" rel="noopener">infografías muy buenas</a> que te dan una guía visual. Eso da mucha luz, pero siempre quedará la duda en algunos casos.</p>
<h3 class="western">¿Qué es un hook o gancho?</h3>
<p style="text-align: justify;">Para ponerlo en palabras simples, es un punto en el cual vamos a “adjuntar el código que queramos”. ¿Eh? Sí. Básicamente llegamos y pegamos el código que queremos en el lugar al cual queremos.</p>
<p style="text-align: justify;">Existen dos formas de hacerlo: Como filtro o como acción. Pero no te enredes con los términos, ya que su diferencia es prácticamente semántica. ¿Por qué? Porque la función para agregar acciones es un <a href="https://developer.wordpress.org/reference/functions/add_action/" target="_blank" rel="noopener">alias de la misma para agregar filtros</a>.</p>
<p style="text-align: justify;">Pero eso no significa que debas intercambiarlas a placer. Si cambias información, usa “add_filter”. Si cambias el comportamiento usa “add_action”. A la larga tu código se entenderá mejor.</p>
<h4>Un ejemplo</h4>
<p style="text-align: justify;">Por ejemplo, la forma más fácil “pegar” código es con un tema y una función. Digamos que tenemos el archivo functions.php y que queremos probar los hooks. Por ejemplo, iniciaríamos con esto:</p>
<p>View the code on <a href="https://gist.github.com/kadai/b313e77a46c72be6b569bab3e72ff51c">Gist</a>.</p>
<p style="text-align: justify;">Una vez que tengamos la función, la magia empieza cuando agregamos “add_filter”:</p>
<p>View the code on <a href="https://gist.github.com/kadai/b313e77a46c72be6b569bab3e72ff51c">Gist</a>.</p>
<p style="text-align: justify;">Con ella, le decimos a WordPress que ejecute nuestra función (agregada como filtro) cuando le toque al hook indicado. En este caso, use uno arbitrario. Es muy probable que no funcione para nada.</p>
<p style="text-align: justify;">Hasta ahí todo bien con el ejemplo. ¿Entonces como saber donde debo agregarla para que se ejecute? Aquí es donde las cosas se complican un montón y es importante mirar el código.</p>
<p style="text-align: justify;">Como mencione en una <a href="https://kadai.com.mx/2017/06/26/modificando-top-posts-de-jetpack/" target="_blank" rel="noopener">entrada anterior</a>, tuve que mirar el código para darme una idea. En ese caso, estuve buscando la función “do_action”. ¿Por qué? Porque ella es la que da la pauta de donde se van a realizar los cambios.</p>
<p style="text-align: justify;">De esa forma sabemos exactamente en donde se va a “pegar” el código que queremos. Pero ten en cuenta que no podrás cambiar nada antes de ese punto (ni después, a menos que haya otro hook que te lo permita).</p>
<p style="text-align: justify;">El ejemplo simple quedaría así para que funcione:</p>
<p>View the code on <a href="https://gist.github.com/kadai/b313e77a46c72be6b569bab3e72ff51c">Gist</a>.</p>
<p style="text-align: justify;">Igualmente buscando y mirando el uso de “<a href="https://developer.wordpress.org/reference/functions/do_action/" target="_blank" rel="noopener">do_action</a>” y “<a href="https://developer.wordpress.org/reference/functions/apply_filters/" target="_blank" rel="noopener">apply_filters</a>”, obtendrás el nombre del hook el cual tienes que usar y que “variables” le pasará. Con ello tendrás el 90% del trabajo hecho.</p>
<p style="text-align: justify;">Aunque google será tu amigo por un buen rato.</p>
<p style="text-align: justify;">Recuerda, podemos agregar cuantas funciones queramos a un hook. Por ejemplo, con varios “add_filter” en diferentes momentos con diferentes funciones. Incluso podemos indicar en que orden se ejecutarán.</p>
<h3 class="western">¿Qué hay de los transients?</h3>
<p style="text-align: justify;">Para hacer la historia corta con ellos, se <a href="https://codex.wordpress.org/Transients_API" target="_blank" rel="noopener">trata básicamente</a> de “variables”. Imagina que son como “cookies” o “sesiones”. Pero en vez de afectar a un solo usuario, podemos usar su contenido para todo el sitio. Son usadas especialmente para guardar consultas complejas.</p>
<p>Por ejemplo, aquí tengo el siguiente ejemplo:</p>
<p>View the code on <a href="https://gist.github.com/kadai/b313e77a46c72be6b569bab3e72ff51c">Gist</a>.</p>
<p style="text-align: justify;">Eso se lo agregué a un tema para hacer “algo” una vez al día.</p>
<p style="text-align: justify;">La gran ventaja, es que podemos recuperar el valor de un transitent fácilmente con “<a href="https://codex.wordpress.org/Function_Reference/get_transient" target="_blank" rel="noopener">get_transient</a>”. Solo necesitas el nombre y listo. Pero ojo, si este ya se encuentra expirado no regresará valor alguno. Esa es su naturaleza, temporal. No es buena idea usarlos para información permanente.</p>
<p style="text-align: justify;">¿Por que expiran? Bueno, es una de sus características. Cuando asignamos su valor con “<a href="https://codex.wordpress.org/Function_Reference/set_transient" target="_blank" rel="noopener">set_transient</a>”, debemos de definir un tiempo tras el cual expirará (ok, podemos asignar “0” o no asignar nada para que jamás expiren, pero esa es otra historia… no deben de ser usados para almacenar información permanente).</p>
<p style="text-align: justify;">Igualmente pueden ser fácilmente borrados con “<a href="https://codex.wordpress.org/Function_Reference/delete_transient" target="_blank" rel="noopener">delete_transient</a>”, si queremos deshacernos de ellos antes de que expiren.</p>
<p style="text-align: justify;">Estos son más fáciles de usar, pero abren un nuevo universo de posibilidades.</p>
<h3 class="western">Conclusión sobre los Hooks y Transients en WordPress</h3>
<p style="text-align: justify;">He estado invirtiendo el tiempo que puedo para poder entender de fondo todas las características que tiene WordPress.</p>
<p style="text-align: justify;">PHP me ha ayudado mucho, aunque me he topado con muchas entradas en blogs que dan por sentado que ya sabes como funciona lo expuesto aquí. Eso puede frustrar un poco, ya que a veces no se entiende el contexto.</p>
<p style="text-align: justify;">Quizá sea idea tomar un curso que me facilite el camino. Solo es cuestión de hacerme del tiempo.</p>
<p>The post <a href="https://kadai.com.mx/hooks-y-transients-en-wordpress/">Hooks y Transients en WordPress</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kadai.com.mx/hooks-y-transients-en-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">640</post-id>	</item>
	</channel>
</rss>
