¿Cómo forzar un git pull?

Hoy os traigo una solución a cuando estamos trabajando con Git flow, o simplemente con git, y no nos damos cuenta que los cambios lo estamos realizando en la rama master en lugar de la rama donde tendríamos que estar. O simplemente la hemos liado parda en la rama master y queremos dejarlo todo como estaba al principio de meter la pata.

Así que sin más dilación voy a contaros cómo forzar un git pull para dejar nuestra rama master a como estaba antes de tocar el código, al final añado como conservar lo que hay en master en otra rama, para así no perder nada de lo realizado y pasarlo a la rama que toca.

Primero de todo usaremos el siguiente comando git:

Con este comando, nos bajaremos lo último que haya, de todas las ramas, pero sin que nos haga hacer merge ni hacer un rebase de nada.

En caso de que no queramos obtenerlo todo, también podríamos ejecutar esto:

Así solo obtendríamos lo que hay en la rama origin/master y no obtenerlo todo, que a veces depende que proyecto… puede ralentizar la cosa.

Y ahora simplemente tenemos que hacer lo siguiente:

O en el caso de que queramos hacer lo propio con una rama ejecutaremos lo siguiente:

Así con el git reset, lo que hacemos es resetear la rama master a lo que hemos cogido antes con el git –fetch all. La opción de –hard, nos cambia todos los archivos que tenemos por los archivos de origin/master y así nuestro repositorio se quedará como estaba antes de hacer lo que hubiéramos hecho.

También podríamos guardar los cambios realizados en una nueva rama, antes de forzar el pull, por si no estamos seguros de si queremos perder nuestros datos, o simplemente nos hemos equivocado de rama a la hora de aplicar cambios.

Como veis aquí guardamos primero en una rama, todos los cambios realizados en master y de esta forma podemos resetear la rama master, forzar el pull, y así tener en una rama los cambios realizados, y el master como el de origin/master.

Espero que os haya servido y tengáis bien organizadas vuestras ramas, recordad que git es muy potente, pero que al ser tan potente hay que ir con mucho cuidado.

Y recordad de comentar siempre, en vuestro código y en el blog 😉

Los mejores plugins de WordPress para mi blog (por ahora)

Mejores plugins Wordpress para mi Blog

Hoy voy a hablaros de los que considero los mejores plugins de WordPress para mi blog, al menos por ahora.

Hace bien poco decidí retomar el tema de blog, pero está vez con un enfoque distinto, un enfoque más comercial, por así decirlo.

Anteriormente en oyagum.com han existido muchos blogs y en todos ellos fracasé, intentaba escribir cosas de mi día a día, mis enfados, intentaba aportar algo, pero no acaba de aportar, ni de realizarme y al final los abandonaba.

Pero de hace un tiempo aquí, me he empapado un montón de sobre SEO, y la verdad, es que he encontrado que es un tema que me apasiona y que puedo llegar a compaginarlo con mi carrera de programador.

Y tenía ganas de probar el SEO en algún proyecto, y como por fuerza mayor, tuve que cambiar de trabajo y pasé de un trabajo de Web Developer a algo más Backend Developer, ya no podía poner en práctica mis conocimientos de SEO.

Así que al final, decidí escribir un blog sobre programación, web y SEO, aplicando todo lo que se hasta ahora. Y lo primero que tocaba hacer era instalar WordPress y lo más tedioso de todo, buscar en Google «los mejores plugins para WordPress» y después de leer miles de webs y miles de recomendaciones, y de probar muchos plugins, me quede con los que más se adecuaban a lo que andaba yo buscando, o algunos extra que busqué a medida que iba avanzando con el Blog.

Así que ahora os pondré una lista de los plugins que yo estoy utilizando, con lo cual seguramente esta lista se vaya modificando con el tiempo, con algunos plugins nuevos, unos nuevos que sustituirán a otros, y nuevos que iré necesitando, con el paso del tiempo.

Así que como veis será una entrada que iré actualizando con el tiempo, pero por el momento podéis ver, los plugins que tengo actualmente instalados, separados en grupos.

Sigue leyendo Los mejores plugins de WordPress para mi blog (por ahora)

Redirecciones 301 y 302 que son y como configurarlas

Redirecciones 301 y 302 que son y como usarlas

Empezando a darle caña al blog, escribiendo y puliendo detalles de SEO, pues me he encontrado con varias cosas, buscar plugins interesantes para WordPress, hacer mejoras en la nomenclatura de la web, lo cual nos lleva al post de hoy, las redirecciones 301 y 302.

Al principio de crear el blog, dejé la palabra «category» para marcar las categorías, pero no me acaba de convencer, pero como no se me ocurría nada mejor, pues así lo deje, y al poco tiempo lo cambie por «sobre» dejando así una estructura de este estilo http://www.oyagum.com/articulos/sobre/seo.

Que a mi parecer está bien enfocado para seo, aunque no creo que sea un termino muy buscado, al menos es una estructura lógica.

El problema ha surgido al cambiar la forma de llamar a las categorías después de ya haber abierto la web al mundo y  a los spiderbots de los buscadores.

Comprobé en Search Console, que Google ya había indexado esas páginas y claro, al cambiarlo por «sobre» las páginas ya indexadas donde aparece «category» en vez de «sobre» darán un error 404, dando mala imagen de la web, como si estuviera descuidada y eso Google lo toma en cuenta, muy en cuenta.

Con lo cual había que poner remedio a esos problemas, y esa solución pasaba por hacer redirecciones 301.

Primero de todo voy a explicaros a los que no lo sepáis, que son las redirecciones 301 o 302 y el archivo .htaccess.

Sigue leyendo Redirecciones 301 y 302 que son y como configurarlas

Reiniciar auto incremental en MySQL y PostgreSQL

Hoy vamos con un tip rápido, como reiniciar el auto incremental de MySQL o el serial de PostgreSQL, para esos casos en los que has tenido que hacer muchas pruebas en tu local y quieres subirlo luego todo a tu servidor y te encuentras que el auto incremental de tu tabla empieza a contar desde el 31337 y quieres reiniciar el id.

Realmente no ocurre nada, ya que va a seguir funcionando igual tu proyecto, pero ya que lo estás empezando de cero, aunque hayas hecho muchas pruebas, imagino que te gustaría que ese auto incremental, empiece a contar desde 1.

Así que aquí os voy a explicar como hacerlo para MySQL y PostgreSQL, que son las bases de datos que más uso y creo que las más extendidas.

Tenemos dos maneras de hacerlo, la primera que es eliminar toda la tabla y volverla a crear y la segunda, que es básicamente asignándole al auto incremental un valor en concreto, veamos la primera.

Sigue leyendo Reiniciar auto incremental en MySQL y PostgreSQL

Como saber si un elemento existe con jQuery

A veces nos encontramos con jQuery, que no sabemos si un elemento ha sido creado o no, y si le intentamos atacar directamente, sin que ese elemento exista, nos va a salir un error de Javascript.

Así que para que eso no nos ocurra deberemos comprobar antes si dicho elemento existe y a continuación os pondré varios métodos para comprobarlo.

Comprobar que existe el elemento usando jQuery

Como veis es muy fácil saber si existe o no un elemento HTML con jQuery.

También si nos interesa, podríamos crear una función y así tenerlo de forma más accesible y limpia.

Comprobar que existe el elemento usando una función de jQuery

De esta forma seguiría más el standard PSR-1, el cual se puede aplicar a cualquier entorno de programación.

Por último, voy a explicaros como se podría hacer con JavaScript, puro y duro, que será mucho más rápido, pero nos limita bastante a que solo tiremos de ID, mientras que con jQuery, podemos usar los selectores que nos apetezcan.

Pero como el saber no ocupa lugar, pues os explico como se haría en Javascript para que tengáis el máximo de información disponible.

Comprobar que existe un elemento con un id específico con JavaScript

Seguramente siempre usaremos jQuery para hacer las comprobaciones, pero quizás en algún sitio con esta simple instrucción de JavaScript nos pueda servir, para saber si un elemento con una id específica existe.

Espero que os haya podido servir de ayuda. Y si teneis más dudas sobre jQuery, JavaScript o PHP, no dudeis en comentarmelo.

Como esconder el email para evitar a los spambots

Hoy vamos a ver como podemos esconder un email  a la vista de todos esos robots de spam que acechan en las esquinas para robarnos nuestra dirección y sacar tajada de ello.

Hay varias técnicas que podemos usar para que los robots no encuentren nuestro email, o como mínimo ponérselo lo más difícil posible.

Ya que cada vez son más listos los bots, tenemos que ser nosotros más listos que ellos, que no se diga que una máquina nos gane.

Hay técnicas más útiles que otras, eso está claro, pero para que podáis elegir, la que más os guste o más rabia os de, os pongo todas las que conozco a continuación:

Sigue leyendo Como esconder el email para evitar a los spambots

Minificar el código HTML a través de PHP

Llevo un tiempo sobre detrás del mundo SEO y leyendo y aprendiendo muchas cosas, pero hay algo que siempre me parece curioso, la mitad de todos esos grandes del SEO, no tienen sus páginas minificadas, no se si tienen algo en contra de tener sus páginas minificadas o simplemente es que se olvidan a la hora de optimizar sus webs, como por ejemplo ocurre en unareceta.com. Y ahí en ese caso solo deberían instalar un plugin de WordPress.

Entiendo que la mayoría estareis usando WordPress como editor de contenidos, pero si alguien llega más allá de WordPress, espero que este artículo le sirva para relizar la minificación de su web.

Pero bueno, aquí estamos para ayudar a la gente a que optimice al máximo sus páginas y puedan ofrecer mucho mejor rendimiento de cara al usuario y de cara a Google.

Así que paso a explicaros como minificar el código para que ocupe lo mínimo posible, ya vereis que es algo muy fácil y sencillo.

Sigue leyendo Minificar el código HTML a través de PHP

Agrupar datos mostrando la última fecha

Cuando estamos trabajando, siempre se nos piden muchas consultas, para obtener todos los datos posibles, para poder obtener el máximo de información. Y una de las consultas que se me ha repetido muchas veces es, encontrar el total de pedidos obteniendo la última fecha del pedido y en otros sitios la petición de datos era diferente, pero con el mismo fin, datos agrupados con la fecha más reciente.

Datos de ejemplo

En este ejemplo, vamos a tener dos simples tablas, la tabla clientes, con los datos de los clientes:

id_clientenombreapellidosemail
1AlbertoMartínezoyagum@gmail.com
2JuanLopezjlopez@gmail.com
3MariaSanchezmsanchez@gmail.com
4PedroAlmodovarpalmodovar@gmail.com
5AlbertoMartínezoyagum@gmail.com

 

Y la tabla pedidos con los datos de los pedidos

idfecha_creacionfecha_updateprecio_totalid_persona
12017-02-06 21:28:012017-02-05 21:28:10501
22017-02-05 21:38:482017-02-05 21:38:48464
32017-02-05 21:38:502017-02-05 21:38:501151
42017-02-05 21:38:502017-02-05 21:38:50803
52017-02-05 21:38:502017-02-05 21:38:501353
62017-02-05 21:38:502017-02-05 21:38:50505
72017-02-05 21:38:502017-02-05 21:38:501462
82017-02-05 21:38:502017-02-05 21:38:50791
92017-02-05 21:38:512017-02-05 21:38:51564
102017-02-05 21:38:512017-02-05 21:38:511143
112017-02-05 21:38:512017-02-05 21:38:51915
122017-02-05 21:38:512017-02-05 21:38:511283
132017-02-05 21:38:512017-02-05 21:38:511483
142017-02-05 21:38:522017-02-05 21:38:52844
152017-02-05 21:38:532017-02-05 21:38:531292
162017-02-05 21:38:532017-02-05 21:38:531261
172017-02-05 21:38:532017-02-05 21:38:53904
182017-02-05 21:38:532017-02-05 21:38:531094
192017-02-05 21:38:542017-02-05 21:38:541274
202017-02-05 21:38:542017-02-05 21:38:54783
212017-02-05 21:38:542017-02-05 21:38:541001
222017-02-05 21:38:542017-02-05 21:38:54623
232017-02-05 21:38:542017-02-05 21:38:54433
242017-02-05 21:38:552017-02-05 21:38:551261
252017-02-05 21:38:552017-02-05 21:38:551032

Tengo más datos en la tabla de pedidos, pero es para que os hagáis una idea.

 

La consulta SQL

Y ahora pasaremos a obtener la consulta para conseguir el total de pedidos de los clientes y la fecha de la última vez que compraron

Así que aquí os pongo como sería la consulta SQL:

Resultado

Y este sería el resultado de la consulta.

total_compradoultima_fecha_compranombreapellidosemail
152017-02-06 21:28:01AlbertoMartínezoyagum@gmail.com
162017-02-05 21:39:10JuanLopezjlopez@gmail.com
192017-02-05 21:39:04MariaSanchezmsanchez@gmail.com
202017-02-05 21:39:09PedroAlmodovarpalmodovar@gmail.com
152017-02-05 21:39:09AlbertoMartínezoyagum@gmail.com

¿Cómo crear un tema hijo en WordPress?

Tema hijo con WordPress

En este post voy a explicar como crear un tema hijo a partir de un tema que hayamos escogido o comprado y no morir en el intento.

WordPress, es un gran gestor de contenidos sin duda alguna, tiene mucha flexibilidad a la hora de poder gestionarlo todo. Lo que claro, también tiene que irse actualizando, y por mucho que encontremos un tema que se adapte perfectamente a lo que andamos buscando, pues casi siempre habrá que tocar algo, y ahí es donde vienen los problemas.

Porqué claro si tocamos el tema directamente, cuando salga alguna actualización, machacará los cambios que hayamos hecho, así que lo que debemos hacer es crear un tema hijo.

Y vamos ya al lío que ya veréis que realmente es muy fácil.

Primer paso: Creamos el directorio donde trabajar

Lo primero de todo es bastante fácil, desde el FTP de acceso a nuestra web, o desde nuestro proyecto en local, dentro de la carpeta de nuestro WordPress, accederemos a la carpeta: wp-content/themes y allí crearemos un directorio en el cual vamos a poner el tema hijo.

Intentaremos encontrar un nombre entendible, por ejemplo, si tenemos el tema Twenty Seventeen,  podríamos crear una carpeta que se llamase twentyseventeen-child.

Segundo paso: Creamos el archivo CSS

Dentro de la carpeta que acabamos de crear, crearemos un archivo donde meteremos los estilos personalizadoss de nuestro tema hijo, le pondremos de nombre style.css.

En dicho archivo pondremos lo siguiente:

/*

Theme Name: Tema Hijo

Theme URI: http://oyagum.com

Version: 1.0

Description: Tema hijo de TemaQueQueramos para hacer cambios sin riesgo

Author: Oyagum

Author URI: http://oyagum.com

Template: Twenty Seventeen */

@import url("../twentyseventeen/style.css");

/*----------------- Estilos propios -------------------------------*/

Como veis es muy sencillo, aunque por si quedan dudas, paso a explicar los campos que tenemos:

  • Theme Name:  El nombre que queramos ponerle a nuestro tema.
  • Theme URI: La URL de nuestro tema, podéis poner la de vuestro blog mismo.
  • Version: Pues si queremos llevar un control, podemos poner la versión que tenemos de este tema hijo.
  • Description: La descripción de nuestro tema, por si nos sentimos inspirados o queremos dejarnos alguna nota.
  • Author: Pues nosotros mismos, que para eso lo estamos haciendo nosotros, con el sudor de nuestra frente.
  • Author URI: Nuestra URL, que si alguien nos copia pues hay que promocionarse como sea.
  • Template: El nombre del template original, el cual vamos a modificar con nuestro tema hijo.
    Importante: Hay que poner el mismo nombre de la carpeta del theme al que queremos hacer el theme hijo. Sino nos saldrá el siguiente error:

Y por último y no menos importante, no dejarse la línea de:

@import url("../twentyseventeen/style.css");

Que nos enlaza con el tema padre, donde twentyseventeen es como no, el directorio donde tenemos instalado el tema padre.

Una vez hecho esto, desde el panel de control de WordPress nos aparecerá nuestro tema hijo y ahí ya podremos activarlo y empezar a usarlo.

Tercer paso: Añadir cosas a nuestro tema hijo

Ahora ya lo tienes todo listo para que en el archivo style.css dentro la carpeta de tu tema hijo, puedas ir añadiendo las modificaciones que creas oportunas, modificar ese tema que tanto te ha gustado, pero que te gustaría aún más con unas pequeñas modificaciones.
Y que en el caso de que haya que actualizarlo, no te de ningún tipo de problema lo que hayas modificado del tema padre.
Espero que os haya sido de utilidad.
Y recordad! No olvidéis comentar! Vuestro código y en el Blog! 😉

Obtener todos los elementos de un mismo tipo en un formulario en jQuery

A veces necesitamos modificar todos los campos de un formulario, ya sea para ponerle a todos el mismo valor o ya sea para otros menesteres.

En el primer ejemplo, os muestro como tocando un botón asignamos a todos los input de tipo texto un valor concreto.

HTML:

 

jQuery:

Así de esta forma solo actuaríamos con los inputs del tipo texto que estarían dentro del mismo formulario donde tenemos el botón, si en la página hubieran más formularios con inputs del tipo texto, no se verían afectados.

Espero os haya servido y recordad:

No olvidéis de comentar, vuestro código y en el blog 😉