Cómo sobrescribir una función de Woocommerce

En este artículo nos vamos a meter un poco en harina y vamos a programar un poquito y para ello vamos a aprender a sobrescribir Woocommerce.

Para el que no lo sepa, Woocommerce es un plugin para WordPress realmente inmenso y bien trabajado que nos permite crear una tienda electrónica en nuestra página web.

Con este plugin podemos gestionar los productos, las variaciones de esos productos, sus precios junto con su stock e incluso configurar productos digitales o incluso montar tiendas multidivisa.

Aunque como te podrás imaginar, esta vaga descripción se queda muy corta de las posibilidades que nos ofrece este sistema de comercio electrónico.

Woocommerce viene con muchísimas funcionalidades y además existen múltiples plugins y add-ons que nos permiten ampliar la funcionalidad básica del sistema.

Pero en este artículo no vamos a ver cómo instalarlo y configurarlo, no.

Hoy aprenderemos a sobrescribir Woocomerce, ampliar o modificar las funcionalidades que vienen por defecto o incluso los estilos que nos ofrece.

 

Sobrescribiendo estilos

Recientemente en el trabajo he tenido que sobrescribir una función de Woocommerce para añadir una clase a un elemento.

Obviamente lo podría haber hecho por jQuery pero ni es la forma correcta ni habría tenido contenido para sacarme este post de la manga 😛

Si todavía hay algún despistado que no sabe que significa la sobrescritura en la programación, siempre puedes darte una vuelta por este artículo en el que se ahonda sobre los conceptos de la programación orientada a objetos.

Pero básicamente consiste en redefinir el comportamiento de una función.

Ahora bien, el “problema” que tenía en el trabajo es que tenía que añadir una clase css personalizada a una de las templates de Woocommerce, concretamente a la template de las variaciones de un producto.

 

sobrescribir Woocommerce

 

Esta cajita gris de la imagen superior en la que aparece el precio y la disponibilidad de una variación se corresponde con la template que se pinta cuando aparecen variaciones.

Lo fácil y lo incorrecto hubiera sido buscar esa template dentro del core de Woocommerce y añadir ahí la clase que necesitaba, pero cuando se actualice el plugin de Woocommerce ese cambio lo iba a perder así que la solución pasaba por otro lado.

Y ese otro lado era sobrescribir la función de Woocommerce que pinta la variación.

Después de pasar un rato buscando en los ficheros del plugin por fin encontré la función que realizaba dicha tarea.

Dicha función se encuentra en wp-content/plugins/woocommerce/includes/wc-template-functions.php

Con esto ya localizado tan solo hay que copiar el código de la función que nos interesa y copiarlo dentro del archivo functions.php de nuestro child-theme y modificar lo que necesitemos modificar.

En mi caso solo he tenido que añadir la clase woo_single_variation tal y como puedes ver en el código siguiente:

Con este cambio ahora todas las variaciones contendrán la clase que me interesa. Cooool… 😀

 

Extendiendo la clase variación

Este ejemplo es para programadores que sean un poco mas pros pero el fondo de la cuestión es el mismo.

Coger lo que nos da WordPress y Woocommerce por defecto y añadirle nuevas funcionalidades.

El problema que tenía en esta ocasión es que necesitaba sacar todas las variaciones de un producto tengan o no tengan stock.

Según la documentación de Woocommerce la única función que se aproximaba a esto es get_available_variations() de la clase WC_Product_Variable.

Esta clase representa a una variación y tiene diferentes métodos para interactuar con ella.

Para mi disgusto, el método get_available_variations() sólo te devuelve las variaciones de un producto que tienen stock pero yo necesitaba todas, las que tienen stock y las que no…

¿Que hice?

Fácil, crear una clase propia que extendiera de la clase variación original y añadir un método para devolver todas las variaciones disponibles sin discriminar.

Te lo repito, si andas un poco perdido con tactos tecnicismos como sobrescritura, extensión y demás, date una vuelta por el curso de programación orientada a objetos, me lo agradecerás 😉

Esa es la clase que he extendido con el método que necesitaba y para hacer uso de ella:

Y con esto un bizcocho…

 

A pastar!

Truco para ocultar el Theme de Wordpress

¿Os gustaría saber cómo ocultar el theme de wordpress en menos de 5 minutos? Pues ale continúa leyendo…

¿Cuantas veces no habrás visitado una web o un blog que te flipaba el diseño y has sido incapaz de conocer que tema estaba usando? A mi desde luego muchas veces porque hay muchas páginas que tienen un diseño brutal y como es normal nos gustaría copiar ese diseño para adaptarlo 😛

Todo este dolor y sufrimiento acabó cuando descubrí esta web. Con ella, puedes saber que tema y que plugins utiliza una web. A nivel de SEO BlackHat esta “ingeniería inversa” junto con los registros Whois están muy bien porque nos ayudan mucho a conocer mas información sobre una web, pero no hay que olvidar que el Data Leaking es un problema muy importante de la vida digital y que muchas veces ocurre por malas configuraciones.

Pues bien, si entramos en la web y buscamos un sitio que sepamos que tiene instalado un WordPress podremos ver automáticamente los plugins que tiene instalado y el tema que usa. La manera mas fácil de saber si un sitio tiene instalado WordPress es mirar de dónde vienen las imágenes. Me explico, si inspeccionamos una foto de la web y vemos su ruta, desde donde se carga, sabremos que utiliza WordPress si la ruta contiene wp-content en ella.

Ruta de una foto
Ruta de una foto

Esto no siempre va a ser así por que por ejemplo una web que tenga que soportar mucho tráfico podría tener los activos en un CDN o utilizar sistemas de caché avanzados, enmascaramiento de rutas o simplemente haber configurado otro directorio para almacenar las imágenes como veremos mas adelante pero esta es una buena y rápida aproximación para hacer una primera criba de pruebas.

Bueno, pues la web de Alberto Garzon nos dice que utiliza un tema de 59 pavos y que ha instalado W3 Total Cache y WordPress SEO by Yoast, vamos, plugins típicos en WordPress aunque no quiere decir que sean los únicos que tenga instalado, sino los únicos de los que se ha podido rastrear información.

El webmaster de Alberto Garzón no saber ocultar el theme de wordpress.
El webmaster de Alberto Garzón no saber ocultar el theme de wordpress.

Y es que las cosas van de Albertos porque a diferencia del webmaster de Alberto Garzón, el webmaster de Albert Rivera ha sabido ocultar el theme de wordpress que utilizan o al menos en parte ya que al hacer una búsqueda de su web podemos ver lo siguiente:

Tema de Albert Rivera
Tema de Albert Rivera

El tío sólo le ha cambiado el nombre del tema y a quitado el screenshot del tema. Toma ya esa si que es una buena forma para ocultar el theme de wordpress. Ah y utiliza el plugin de Instagram Feed, tal vez lo utilice para su red de bots :P.

Bueno pues bien por el, pero para evitar este tipo de cosas en nuestras webs vamos a aprender a ocultar el theme de wordpress y para ello vamos a tardar menos de 5 minutos y si no que me parta un rayo!

Por cierto, tienes curiosidad por saber que tema utilizo? Pues corre, ve a comprobarlo 😉

Cómo ocultar el tema de wordpress

Pero no te lo voy a dar todo mascadito, piensa un poquito que es muy fácil. ¿Qué es un tema o theme? No es mas que un conjunto de ficheros que dan el aspecto y la estructura a una web, así que a bote pronto, qué fichero podría tener toda esta información que se está fugando?

Si todavía no lo has descubierto será mejor que lo averigües compartiendo el post en las redes, ya sabes, un tweet o un fb y te desvelo el truco para ocultar el theme de wordpress 😛 jejeje

[sociallocker id=”1217″]

Para ocultar el theme de nuestro WordPress tenemos dos formas de hacerlo a las que yo he llamado…

Las dos técnicas legendarias
Las dos técnicas legendarias

El camino del ligero colibrí

Como un pequeñito colibrí que coge el polen sin apenas alterar el entorno, nosotros vamos a modificar la descripción de nuestro tema sin que WordPress llegue casi a enterarse, todo muy clínico.

Entramos en nuestro WordPress y nos dirigimos a la parte de Apariencia. Allí hacemos click en Editor y podremos ver la disposición de todos los ficheros que componen nuestro tema. Pues bien, tenemos que buscar la hoja de estilos que en el 99% de los casos se llamará style.css

Estilos de un tema
Estilos de un tema

Si os fijáis bien al principio del fichero hay un bloque de comentarios con diferente información, pues bien es esa información la que tenemos que cambiar para modificar la descripción de nuestro tema o borrarla para de una manera “definitiva” ocultar el tema de wordpress. Los campos más importantes son:

  • Theme Name: Nombre único y público del tema.
  • Theme URI: Página web de la landing page de venta del tema.
  • Author: Nombre del amigo que todos tenemos que una vez robo un ejemplar del jueves cuando era un crío.
  • Author URI: Página web del amigo del jueves.
  • Description: Descripción sobre tu tema.
  • License: Tipo de licencia escogida para el tema

Con cambiar esta información y borrar caché ya tendremos la información de nuestro tema oculta. Luego la imagen tendremos que ponerla dentro del directorio de tu tema bajo el nombre de screenshot.png.

El sendero del elefante

Esta es la forma más bruta e intrusiva de hacer este truco y consiste en llegar y arrasar con todo como lo hace una manada de elefantes. Una violación fría de un sistema sin guantes de látex ni vaselina.

No, tan sólo nos conectaremos por FTP utilizando Filezilla para ello. xD

Directorio del tema de wordpress
Directorio del tema de wordpress

Cuando os conectéis y esteis en la raíz de vuestro hosting si vais a /www/wp-content/themes/nombreDetuTema/ allí vais a encontrar la hija de estilos del tema, el styles.css.

Pues eso, que podéis descargarlo y editarlo, cambiar lo que os de la gana y volver a subirlo y ale ya habéis conseguido ocultar el theme de wordpress.

[/sociallocker]

Aunque claro, siempre hay otras formas que tal vez deberíamos tomar para ocultar que nuestro sitio lo hemos montado utilizando un WordPress. Nunca esta de más prevenir la fuga de datos y en un par de minutos con “cuatro” configuraciones podemos hacer ya mucho como por ejemplo:

Borrar la categoría en todas tus Urls

Podemos borrar el rastro de la categoría en las urls de nuestro blog, luego acordaos de hacer una re-dirección de la antigua url a la nueva para que no tengáis problemillas con vuestro SEO. Esto lo haremos editando el fichero .htaccess y poniendo la siguiente regla:

RewriteRule ^category/(.+)$ http://tudominio.com/$1 [R=301,L]

Otra técnica que podemos utilizar para ponérselo un poco más difícil a los cotillas es…

Cambiar la carpeta de subida de ficheros

En WordPress por defecto esta carpeta se encuentra en /wp-content/uploads/ y después en función de como tengáis configurado vuestro blog podréis tener tantas carpetas como años publicados y dentro de ellos los meses y ficheros subidos según su fecha de subida.

Bien, pues para cambiar la configuración de la carpeta de subida de ficheros tenemos que editar el wp-config.php y poner el siguiente define:

define('UPLOADS', 'wp-content/loquetedelagana');

Y ya está.

Acciones como esta te vas a encontrar con muchas mas y por eso si las aplicásemos todos haríamos un mega blog ninja del que nadie sabría que es, solo que esta ahí.

Paranoia a parte, lo interesante del truco de ocultar el theme de wordpress, es lo que está oculto bajo los botones sociales, ahí esta la verdadera chicha así que ya sabéis lo que tenéis que hacer, compartid el artículo en vuestras redes sociales y ya podréis aplicar el truco de ocultar el tema en todos vuestros blogs.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

 

Por otra parte ya habéis visto el banner, he abierto ese canal a través de Twitter para que me preguntéis lo que os de la gana y así hago un post contestando a todo. Ale, dudas a Twitter 😉

Que os den!

Hacer un vhost en un Nginx sobre Vagrant

Qué pasa chumachos? Tenéis ganas de aprender a hacer un vhost sobre servidores Nginx? Si? Pues allá vamos.

Hoy os vengo con otro post técnico. En este artículo veremos cómo hacer un vhost en un servidor Nginx montado sobre un Vagrant. Toma ya menudo jaleo de palabras xD. Si las conoces y no estas con cara de WTF continúa leyendo.

Lo primero que necesitaremos será tener instalado Vagrant. Pero para el que no lo sepa, vamos a ver qué es Vagrant y qué dice su documentación oficial:

Create and configure lightweight, reproducible, and portable development environments.

O dicho de otro modo, con Vagrant montaremos una máquina virtual en la que tendremos instalado un servidor web (Nginx), PHP, Mysql y el resto de software que nos haga falta.

Para instalar Vagrant solo nos tenemos que venir a la página de descargas y seleccionar el paquete que necesitemos para nuestros sistemas operativos. En mi caso elegí el paquete para arquitecturas de 64 bits con Debian. Esto te descarga un .deb con el que instalar Vagrant de forma super sencilla mediante el Gestor de Software de Linux.

Siguiente paso, instalar VirtualBox, pero…

¿qué es VirtualBox?

Pues VirtualBox es el software que vamos a utilizar para montar esa máquina virtual en la que desplegar el entorno de desarrollo. También hay otro software para la creación de máquinas virtuales como por ejemplo Vmware, pero para hacerlo funcionar bien sin problemas con Vagrant usaremos VirtualBox.

Para descargar VirtualBox os tenéis que venir a la página de descargas y buscar el binario que necesitéis o que os pida vuestro ordenador por eso que es muy importante que conozcáis la arquitectura que tengáis.

Una vez que ya tengáis instalado VirtualBox y Vagrant instalado os podéis clonar esta vagrant-box que ya viene preparada para desarrollar plugins y temas para WordPress. Este es el software que trae la máquina:

  • Ubuntu 14.04 LTS (Trusty Tahr)
  • WordPress Develop
  • WordPress Stable
  • WordPress Trunk
  • WP-CLI (master branch)
  • nginx (mainline version)
  • mysql 5.5.x
  • php-fpm 7.0.x
  • memcached
  • PHP memcache extension
  • PHP xdebug extension
  • PHP imagick extension
  • PHPUnit
  • ack-grep
  • git
  • subversion
  • ngrep
  • dos2unix
  • Composer
  • phpMemcachedAdmin
  • phpMyAdmin (multi-language)
  • Opcache Status
  • Webgrind
  • NodeJs
  • grunt-cli
  • Mailcatcher

Con esta máquina solo te tienes que preocupar de levantarla y liarte a programar. Fin.

Trabajar con Vagrant

Comando para hacer un vhost en una box de Vagrant

Pues venga, vamos a levantar la máquina y configuramos todo, con vagrant up hacemos precisamente eso. Mientras esperas a que se levante la máquina y se inicialice todo puedes irte a preparar un café porque esto tarda un ratito…

Una vez haya acabado nos vamos a conectar a la máquina mediante ssh. Vagrant mola porque tiene un comando para hacerlo, no deja de actuar como un alias asi que guay, Vagrant ssh. Ea, ya está.

Comando para conectarse a una box de Vagrant

Dentro de la máquina podemos navegar por el árbol de directorios y hacer cualquier cosa que hagamos en nuestro ordenador normal. Tenemos que saber que el directorio del servidor web está en /srv/www/ y allí es donde vamos a crear la carpeta para guardar nuestro proyecto. Ejecutamos:

mkdir /srv/www/gorkamu

La configuración para hacer el virtual host de nuestro proyecto “gorkamu” tenemos que ponerla en /etc/nginx/custom-sites/default.conf 

Este es un ejemplo de una configuración típica de un virtual host pensada para desarrollar para WordPress.


##########################################################
# Custom wordpress configuration
#
# These server configurations are to:
# - local.gorkamu.dev
#
################################################################
server {
    listen 80;
    listen 443 ssl;
    server_name local.gorkamu.dev *.local.gorkamu.dev ~^local.gorkamu.d+.d+.d+.d+.xip.io$;
    root /srv/www/gorkamu;
    include /etc/nginx/nginx-wp-common.conf;
}

Hala! Pues ya lo tenemos. Reiniciamos el servidor nginx con cualquiera de los siguientes comandos:

# /etc/init.d/nginx restart
# /etc/init.d/nginx reload
# service nginx restart
# service nginx reload
# nginx -s reload
# /path/to/full/nginx -s reload
# /usr/local/nginx/sbin/nginx -s reload

Si queréis saber cuales son las diferencias de utilizar un servidor Nginx o un Apache echadle un ojo a este link. muy interesante 😉

Hala, que os den!

Cómo conseguir un link de alta autoridad con Wordpress

Volvemos con otro artículo sobre link building. Últimamente he ido hablando bastante sobre cómo conseguir links con alta autoridad tanto de página como de dominio, como en este post o este otro y hoy no iba a ser menos.

Te traigo un truco sobre cómo sacarle todos los enlaces que te de la gana a WordPress, que sean dofollow y encima todas las veces que quieras. Manos a la obra.

La magia de WordPress

Accedemos a la página web de WordPress y nos registramos si no lo estamos ya. Me imagino que todos tendremos cuentas gratuitas en WordPress para montar nuestras pirámides de enlaces así que no voy a explicar cómo se rellena el formulario de registro, eso lo dejo para vosotros 😉

La gracia del asunto esta en las etiquetas que ponemos cuando escribimos un articulo. Y es que las arañitas de Google son capaces de pasar por las páginas de WordPress en las que aparecen los últimos artículos que hablen de un tema en concreto o de un tag e indexarla.

Etiquetas en WordPress
Etiquetas en WordPress

Estas páginas muestran una entradilla del artículo de unas 65 palabras de longitud. Si somos capaces de encontrar una página de tags que tenga una autoridad de dominio y de página lo suficientemente alta como para que Google sufra un micro orgasmo, habremos conseguido un buen link.

Lo malo de todo esto es que tendremos que compartir link juice con los otros enlaces que aparezcan por la página y puede que tal vez la temática de las otras páginas enlazadas no tengan nada que ver con nuestro artículo, pero aún así no es tan grave.

Puedes buscar las etiquetas con más actividad en todo momento desde esta página. Para el ejemplo de este artículo yo he probado una etiqueta demasiado evidente. He escrito un nuevo artículo sobre cómo posicionar en youtube basado en un artículo anterior y mio y lo he etiquetado bajo SEO y youtube. La página de la etiqueta de SEO tiene una autoridad de dominio de 99 y una autoridad de página de 50, así que por mucho que sea WordPress y gratuito, los enlaces sacados de aquí no serán ninguna tontería. A si, se me olvidaba… son dofollow!!

Para el que no lo crea mirad la siguiente imagen y comprobadlo por vosotros mismos.

SEO en Youtube
SEO en Youtube

Esta claro que no podemos basar toda nuestra estrategia de construcción de enlaces en un único proveedor. Tenemos que ir variando para que Google no se mosqueé. Con este artículo ya tienes otro sitio güeno donde tirar un enlace 😉

¡Hasta que volvamos a olernos!

Cómo cambiar el slug category de Wordpress

Vale, se que llevo mucho tiempo sin actualizar el blog. Desde Noviembre del año pasado concretamente pero he tenido una buena escusa para retrasarme, he cambiado de trabajo y de ciudad y como es normal, lleva tiempo cerrar las cosas básicas de mudanza y demás.

Como ultimamente estoy recibiendo muchas preguntas de diferentes temas, inauguro con este post una nueva sección en la que responderé a las diferentes cuestiones que podíais hacerme.

El primer articulo de este 2015 lo voy a dedicar a una tarea básica de WordPress que últimamente me preguntan mucho y que gracias al siguiente comentario me he animado a responderla.

¿Gorka, me ayudas?
¿Gorka, me ayudas?

La cosa en si es una absoluta gilipollez si sabes como hacerla, pero que si no lo tienes tan claro vas a pasarte un buen rato dando vueltas por los diferentes menús de WordPress.
Me refiero a cambiar el slug category de nuestras URLs. En este blog no lo he cambiado por temas de SEO porque empecé a escribir sin darme cuenta de este detalle y ahora si lo quisiera cambiar tendría que estar haciendo redirecciones por cada uno de mis posts y no me apetece mucho la verdá…

Bien, para el que no lo sepa, este slug no esta sujeto a los ficheros de traducción .mo y .po por lo que ahí no vais a encontrar la solución a este problema. Para cambiarlo tendreís que ir a Ajustes > Enlaces permanentes y hacer click en la sección Opcional.

En los campos “Categoría base” y “Etiqueta base“, es donde podemos asignar los nuevos nombres para sustituir los términos: “category” y “tag“ y ya esta. Guardamos y ya tendremos nuestros cambios actualizados.

Opción de menú para cambiar el category
Opción de menú para cambiar el category

Bueno señores, me voy a volver a obligar a retomar la publicación de post de una forma mas o menos periódica y si veo que esta nueva sección funciona seguiré respondiendo a vuestras dudas.

¡Hasta que volvamos a olernos!

Lista de servicios ping para avisar a Google que hay contenido fresco

Si señores, hoy estoy un poco vaguete y por eso mismo no me voy a meter en instalaciones en Linux, los que lo usáis sabéis que a veces puede ser un proceso bastante tedioso, Linux no es un  SO para perezosos en los que solo hay que dar a “Siguiente” ejem ejem…. En fin, que tampoco voy a hablar de configuraciones de IDEs ni ejemplos de programación ni técnicas de SEO, será que uno no esta hoy para pensar demasiado…

En este artículo quiero hablar un poquito, muy poquito porque imagino que todos ya lo sabremos, sobre lo que es hacer ping en un blog. Mentando a Wikipedia

En los blogs, hacer ping es un mecanismo de mención XML-RPC basado en un blog, por el que notifica a un servidor que su contenido se ha actualizado.

¿Queda claro no? Haciendo ping a diferentes servicios conseguiremos ayudar a que Google, entre otros motores de búsqueda, nos indexe más rápido nuestro nuevo artículo. Ciertamente es imprescindible que contemos con una buena lista de servicios a los que hacer ping si vamos medianamente en serio con nuestro blog.

Os voy a pasar la lista que utilizo yo para hacer ping, es bastante probable que algún servicio no funcione. Como comprenderéis no los he probado todos. A cambio os pido una acción social para desbloquear la lista, vamos hamijos.

[sociallocker]

http://rpc.pingomatic.com/
http://feedburner.google.com/fb/a/pingSubmit?bloglink=http%3A%2F%2Fwww.yourdomain.com/
http://audiorpc.weblogs.com/RPC2
http://bing.com/webmaster/ping.aspx
http://blog.with2.net/ping.php
http://blogsearch.google.com/ping/RPC2
http://news2paper.com/ping
http://ping.bitacoras.com/
http://ping.bloggers.jp/rpc/
http://ping.fc2.com
http://ping.pubsub.com/ping
http://ping.rss.drecom.jp
http://ping.syndic8.com/xmlrpc.php
http://ping.wordblog.de
http://rpc.bloggerei.de/ping/
http://rpc.pingomatic.com/
http://rpc.twingly.com/
http://rpc.weblogs.com/RPC2
http://services.newsgator.com/ngws/xmlrpcping.aspx
http://wasalive.com/ping/
http://xianguo.com/xmlrpc/ping.php
http://xping.pubsub.com/ping/
http://api.moreover.com/RPC2
http://api.my.yahoo.co.jp/RPC2
http://api.my.yahoo.com/RPC2
http://audiorpc.weblogs.com/RPC2
http://blog.goo.ne.jp/XMLRPC
http://blogpeople.net/ping
http://blogsearch.google.ae/ping/RPC2
http://blogsearch.google.at/ping/RPC2
http://blogsearch.google.be/ping/RPC2
http://blogsearch.google.bg/ping/RPC2
http://blogsearch.google.ca/ping/RPC2
http://blogsearch.google.cl/ping/RPC2
http://blogsearch.google.co.cr/ping/RPC2
http://blogsearch.google.co.hu/ping/RPC2
http://blogsearch.google.co.id/ping/RPC2
http://blogsearch.google.co.il/ping/RPC2
http://blogsearch.google.co.in/ping/RPC2
http://blogsearch.google.co.it/ping/RPC2
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.co.ma/ping/RPC2
http://blogsearch.google.co.nz/ping/RPC2
http://blogsearch.google.co.th/ping/RPC2
http://blogsearch.google.co.uk/ping/RPC2
http://blogsearch.google.co.ve/ping/RPC2
http://blogsearch.google.co.za/ping/RPC2
http://blogsearch.google.com.ar/ping/RPC2
http://blogsearch.google.com.au/ping/RPC2
http://blogsearch.google.com.br/ping/RPC2
http://blogsearch.google.com.co/ping/RPC2
http://blogsearch.google.com.do/ping/RPC2
http://blogsearch.google.com.mx/ping/RPC2
http://blogsearch.google.com.my/ping/RPC2
http://blogsearch.google.com.pe/ping/RPC2
http://blogsearch.google.com.sa/ping/RPC2
http://blogsearch.google.com.sg/ping/RPC2
http://blogsearch.google.com.tr/ping/RPC2
http://blogsearch.google.com.tw/ping/RPC2
http://blogsearch.google.com.ua/ping/RPC2
http://blogsearch.google.com.uy/ping/RPC2
http://blogsearch.google.com.vn/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://blogsearch.google.ch/ping/RPC2
http://blogsearch.google.de/ping/RPC2
http://blogsearch.google.es/ping/RPC2
http://blogsearch.google.fi/ping/RPC2
http://blogsearch.google.fr/ping/RPC2
http://blogsearch.google.gr/ping/RPC2
http://blogsearch.google.hr/ping/RPC2
http://blogsearch.google.ie/ping/RPC2
http://blogsearch.google.in/ping/RPC2
http://blogsearch.google.it/ping/RPC2
http://blogsearch.google.jp/ping/RPC2
http://blogsearch.google.lt/ping/RPC2
http://blogsearch.google.nl/ping/RPC2
http://blogsearch.google.pl/ping/RPC2
http://blogsearch.google.pt/ping/RPC2
http://blogsearch.google.ro/ping/RPC2
http://blogsearch.google.ru/ping/RPC2
http://blogsearch.google.se/ping/RPC2
http://blogsearch.google.sk/ping/RPC2
http://blogsearch.google.tw/ping/RPC2
http://blogsearch.google.us/ping/RPC2
http://feedsky.com/api/RPC2
http://hamo-search.com/ping.php
http://1470.net/api/ping
http://bitacoras.com/ping
http://bitacoras.net/actualizado/
http://bitacoras.net/ping
http://blog.goo.ne.jp/XMLRPC
http://blogmatcher.com/u.php
http://blogping.unidatum.com/RPC2/
http://blogsearch.google.at/ping/RPC2
http://blogsearch.google.com/ping
http://blogsearch.google.com/ping/RPC2
http://bulkfeeds.net/rpc
http://coreblog.org/ping
http://cullect.com/feed/ping
http://mod-pubsub.org/kn_apps/blogchatt
http://pasaporteblog.com
http://ping.amagle.com/
http://ping.bing.com
http://ping.bitacoras.com
http://ping.blo.gs
http://ping.blogalaxia.com
http://ping.bloggers.jp/rpc/
http://ping.blogmura.jp/rpc/
http://ping.cocolog-nifty.com/xmlrpc
http://ping.ecuablogs.com/
http://ping.exblog.jp/xmlrpc
http://ping.fakapster.com/rpc
http://ping.feedburner.com
http://ping.myblog.jp
http://ping.namaan.net/rpc
http://ping.rootblog.com/rpc.php
http://ping.syndic8.com/xmlrpc.php
http://ping.weblogalot.com/rpc.php
http://ping.weblogs.es/
http://ping.weblogs.se/
http://ping.wordblog.de/
http://pinger.blogflux.com/rpc
http://pinger.blogflux.com/rpc/
http://pingoat.com/goat/RPC2
http://rcs.datashed.net/RPC2
http://rcs.datashed.net/RPC2euro.weblogs.com
http://rpc.blogbuzzmachine.com/RPC2
http://rpc.bloggerei.de/ping/
http://rpc.blogrolling.com/pinger/
http://rpc.britblog.com
http://rpc.icerocket.com:10080/
http://rpc.newsgator.com/
http://rpc.pingomatic.com
http://rpc.reader.livedoor.com/ping
http://rpc.tailrank.com/feedburner/RPC2
http://rpc.technorati.com/rpc/ping
http://rpc.weblogs.com/RPC2
http://rpc.wpkeys.com
http://services.newsgator.com/ngws/xmlrpcping.aspx
http://thingamablog.sourceforge.net/ping.php
http://topicexchange.com/RPC2
http://topicexchange.com/t/gofio/
http://trackback.bakeinu.jp/bakeping.php
http://www.a2b.cc/setloc/bp.a2b
http://www.bitacoles.net/ping.php
http://www.bitadir.com/ping.php
http://www.bitadir.com/ping.php
http://www.blogdigger.com/RPC2
http://www.bloglines.com/ping
http://www.blogoole.com/ping/
http://www.blogoon.net/ping/
http://www.blogpeople.net/servlet/weblogUpdates
http://www.blogroots.com/tb_populi.blog?id=1
http://www.blogscolombia.com/ping/
http://www.blogsdominicanos.com/ping/
http://www.blogsecuador.com/ping/
http://www.blogshares.com/rpc.php
http://www.blogsmexico.com/ping
http://www.blogsnow.com/ping
http://www.blogspanama.com/ping/
http://www.blogstreet.com/xrbin/xmlrpc.cgi
http://www.catapings.com/ping.php
http://www.lasermemory.com/lsrpc/
http://www.linkloo.com/xmlrpc.xml
http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php
http://www.mundoalterno.com/bloguisferio/ping/auto.asp?id=1755
http://www.newsisfree.com/RPC
http://www.newsisfree.com/RPCCloud
http://www.newsisfree.com/xmlrpctest.php
http://www.popdex.com/addsite.php
http://www.snipsnap.org/RPC2
http://www.veneblogs.com/ping/
http://www.wasalive.com/ping/
http://www.weblogues.com/RPC/
http://xml-rpc.meaviso.com/ping.php
http://xping.pubsub.com/ping/
http://zhuaxia.com/rpc/server.php
http://ping.blogoon.net/
http://ping.blogs.yandex.ru/RPC2
http://ping.fc2.com/
http://ping.feedburner.com/
http://ping.snap.com/ping/RPC2
http://ping.wordblog.de/
http://rpc.blogrolling.com/pinger/
http://rpc.pingomatic.com
http://rpc.reader.livedoor.com/ping
http://rpc.technorati.com/rpc/ping
http://rpc.technorati.jp/rpc/ping
http://rpc.twingly.com/
http://rpc.weblogs.com/RPC2
http://xping.pubsub.com/ping/</pre>
<pre>

[/sociallocker]

Quizás los más novatos después de haber hecho un +1, un like o un retweet se pregunten que demonios hacer con esta lista. Pues tenéis que colocarla en los Ajustes de WordPress. ¿Dónde? Pues concretamente en la parte de opciones de Escritura, justo donde pone Servicios de actualización. Copiáis y pegáis y ya lo tenéis. Ea, de nada hamijos 😉

¡Hasta que volvamos a olernos!

descarga

Cómo usar Wordpress junto a Symfony mediante configuración de htaccess

Llevas varios meses desarrollando una aplicación web con Symfony, has entendido todos los conceptos, MVC, Routing, Symfony Rewrite… ahora toca tener un blog que hable de las maravillas de tu aplicación y a través de ella puedas atraer a tu público objetivo. Tu primera opción es delegar a los sabios e instalar un CMS, tal vez tus primeras opciones sean WordPress o Joomla. Cuando estas en plena faena te das cuenta que no es tan fácil como te habías imaginado, empiezas a buscar por todos los rincones de StackOverflow que línea concreta hará que tu htaccess no se queje. Tras mucho buscar sigues sin encontrar nada y cada vez te desesperas más porque no consigues hacer funcionar tu WordPress o Joomla y una idea nueva te viene a la cabeza, desarrollar tu propio CMS, intentas alejarla de tu cabeza porque no quieres pasar por ello cuando ya existen soluciones mejor programadas de lo que podrías hacer tu. Con esta línea temporal he intentado resumir lo que me ha pasado a mi durante la semana pasada y por fin he encontrado la solución.

 

Cómo hacer que WordPress y Symfony cohabiten juntos

En mi semana de investigación y desespero he visto muchas soluciones de todo tipo pero desgraciadamente no funcionaban, o por lo menos, yo al ser un manco no conseguía hacer funcionar en mi proyecto. He visto un par de Bundles interesantes como este para hacer un merge de las funcionalidades de WordPress y Symfony y utilizar ambas dos herramientas dentro del mismo proyecto. También he visto miles de configuraciones del fichero htaccess diferentes, creo que me salen las Regexp por las orejas y es que nunca se me han dado muy bien, siempre las he tenido atragantadísimas.

Dentro de un proyecto Symfony, la parte pública en la que están los controladores frontales es la carpeta /web, pues bien, dentro de la carpeta /web he creado el directorio /blog en el que se alojará toda la instalación de WordPress.

La configuración del fichero htaccess de la carpeta web es la siguiente

DirectoryIndex app.php
DirectoryIndex app.php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ app.php/
    </IfModule>
</IfModule>

Y la configuración del fichero .htaccess del directorio blog es la siguiente:

DirectoryIndex index.php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /blog/index.php [QSA,L]
</IfModule>

Con esta configuración lo que estamos haciendo es que cada petición que hagamos a nuestra aplicación, sean los controladores frontales y el sistema de re escritura de symfony los que se encarguen de procesarla y servirla y que cuando queramos acceder a nuestro blog o a algún recurso contenido en el directorio /blog, que sean los controladores de WordPress los encargados de procesar la solicitud. Con estas configuraciones estamos delegando en dos actores diferentes.

Puede que no sea la mejor opción si nos ponemos muy puristas pero es la solución que a mi me ha funcionado.

Si estabais con el mismo problema que yo y habéis caído por casualidad en este blog, espero que os funcione a la perfección como a mi, en cualquier caso podéis utilizar los comentarios para sugerir otras opciones. Y por lo que a mi me respecta…

¡Hasta que volvamos a olernos!