miércoles, 9 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Varnish y WordPress

Posted: 09 May 2012 04:15 PM PDT

Como el otro día comenté algo sobre Varnish y un nuevo plugin, y alguno ya preguntasteis en los comentarios, creo que ya iba siendo hora de explicar lo que es  Varnish, un sistema de cache realmente potente, fantástico para instalaciones WordPress con mucho tráfico, y que como ya puedes imaginar uso aquí en Ayuda WordPress.

Vamos a ello pues …

¿Qué es Varnish?

Varnish Cache es un acelerador web, o un sistema de cache HTTP de reverse proxy. Se instala en cualquier servidor que sirva (vale, es redundante) HTTP y se configura para que cachee sus contenidos. Según algunos estudios acelera el servicio en un 70%.

Cachear una web, por si alguien no lo sabe aún, es almacenar una copia de la misma para que sea la que vean los visitantes futuros. En el caso de Varnish y WordPress, lo que consigue es servir páginas cacheadas (almacenadas) de tu WordPress para que no tenga este que hacer llamadas a la base de datos cada vez que alguien visita tu web. Esto reduce la carga del servidor ya que simplemente sirve una copia única de las páginas a todos los visitantes sin tener que buscar las mismas imágenes y servicios para cada contenido y cada visitante.

Además, Varnish cachea las páginas en memoria virtual, para que tu sitio cargue mucho más rápido, lo que de paso mejora tu SEO, pues Google tiene estimado que por cada medio segundo de tiempo de carga adicional de una web esta recibe una media de un 20% de menos visitantes (fuente). De este modo, reduciendo con Varnish de manera importante el tiempo de carga de página pueden aumentar tus visitas y mejorar tu ranking en los buscadores, algo siempre a tener en cuenta.

La gente de Varnish ha publicado un vídeo muy simple, al tiempo que explicativo que seguro te ilustra sobre lo que hace …

Instalando Varnish

Varnish es un software libre así que no tienes excusas para instalarlo ahora mismo. Se ejecuta en Linux, preferiblemente en FreeBSD, pero puede funcionar igualmente en otras plataformas. Una vez lo instales puedes personalizarlo para definir cuantas peticiones entrantes gestionará mediante el Idioma de Configuración de Varnish (Varnish Configuration Language o VCL).

Varnish está pensado para que sea flexible, para que lo instales pensando en un sitio concreto en mente, y lo adaptes de manera personalizada a el.

Lo ideal es empezar con una configuración básica de Varnish, para más adelante ir probando pequeños cambios y ver como afectan al rendimiento del sitio concreto. Hay varias subrutinas que le dicen a Varnish como responder a las peticiones entrantes y salientes, a los errores, etc.

Así que vamos a empezar con una configuración básica, para luego echar un vistazo a las funciones básicas del VCL y luego ya tu lo tuneas a tu gusto.

Paso a paso

Poner en marcha Varnish es bastante sencillo. Partiendo de una base de, digamos, Apache en un sistema Debian (la mayoría de los servidores Linux), aunque también funciona en el resto, empezaríamos con este comando:

apt-get install varnish

Primero  hay que configurar Apache para que “escuche” el puerto 8080 de localhost. Varnish podrá entonces escuchar el puerto 80 (por donde vienen las visitas). En el archivo /etc/apache2/ports.conf, edita estos ajustes:

NameVirtualHost 127.0.0.1:8080  Listen 127.0.0.1:8080

Para que se inicie Varnish (por defecto no lo hace), edita lo siguiente en el archivo /etc/default/varnish

START=yes  DAEMON_OPTS="-a DIRECCION_IP_EXTERNA:80 \  	-T localhost:6082 \  	-f /etc/varnish/default.vcl \  	-S /etc/varnish/secret \  	-s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G"

Reemplaza DIRECCION_IP_EXTERNA con la IP de tu dirección IP externa. También puede ser una dirección interna si tu servidor está tras un balanceador de carga o algo como NGINX. Este ajuste controla qué dirección IP y puerto quieres que Varnish escuche y vigile.

Una vez echo lo anterior edita el archivo /etc/varnish/default.vcl, que debería ya existir, con mucho de su contenido comentado (no activo). Empiezaremos por cambiar el backend default.

backend default {  	.host = "127.0.0.1";</p>  	.port = "8080";</p>  }

Ahora Varnish ya sabe que Apache está escuchando el puerto 8080 y la interfaz de localhost, para que podamos empezar a usar las funciones. La mayoría del trabajo se  hará con vcl_recv y vcl_fetch, y si no llamas a una acción en esta subrutina y Varnish llega al final, ejecutará el código que encuentre en el archivo default.vcl.

Note: no cachees nunca wp_admin, wp_login, o rutas similares.

Así es como trabaja – las 4 básicas subrutinas de tu configuración de Varnish que necesitas para gestionar peticiones serán:

sub vcl_recv

Esta llamada se hace al comienzo de una petición, y le dice a Varnish qué hacer con esa petición en concreto: si tiene que servirla, cómo servirla, y qué respaldo usar.

Varnish recibe una petición de tu navegador, y entonces vcl_recv decide hacer una de 3 costs con ella: vcl_hash, vcl_pass, y vcl_pipe (ahora lo explico). Puedes cambiar la petición si quieres, alterar las cookies o quitar la cabecera de la petición.

sub vcl_fetch

A vcl_fetch se la llama después de que se haya recuperado un documento con éxito. Usas esto para alterar las cabeceras de respuesta, lanzar el procesamiento ESI o para tratar de alternar entre servidores de respaldo si falla la petición.

El objeto solicitado, req, está todavía disponible, y ahí también  hay una respuesta de respaldo, beresp, que contiene las cabeceras HTTP del respaldo.

sub vcl_hash

Puedes llamar al hash_data del dato que quieras añadir al hash. Esta subrutina puede terminar con una llamada a return() con una de estas keywords: hash o proceed.

sub vcl_deliver

Llamas a esto antes de que el objeto cacheado se entregue al cliente. Esto puede terminar con deliver, error code, o restart. Deliver entrega el objeto al cliente, error devuelve el código de error específico al cliente y abandona la petición, restart reiniciará la transacción e incrementará el contador de reinicio.

Acciones

Hay ciertas acciones que puedes realizar en cada subrutina cuando personalizas Varnish:

pass

Pasa la petición y su consiguiente respuesta hacia el servidor de respaldo, sin cachear. Puedes llamar a pass tanto en vcl_recv como en vcl_fetch.

lookup

Se hace la petición desde vcl_recv para entregar contenido desde la cache aunque la petición indique que debe pasarse la misma. Puedes llamar a lookup desde vcl_fetch.

pipe

Desde vcl_recv, pipe cortocircuita al cliente y las conexiones de respaldo, y Varnish simplemente se queda ahí pasando los datos a un lado y a otro, registrando los datos, así que los registros serán incompletos. Ten cuidado ya que un cliente HTTP 1.1 puede enviar varias peticiones en la misma conexión, y así podrías hacer que Varnish añada una cabecera “Connection:close” antes de hacer la llamada a la pila de conexiones.

deliver

Entrega el objeto cacheado al cliente. Normalmente se le hace la llamada desde vcl_fetch.

esi

Hace un proceso ESI del documento adquirido.

Si quieres saber más sobre VCL no te pierdas este tutorial, que también contiene funciones que puedes realizar en tu sitio.

Configuraciones de ejemplo

Espero que estés aprendiendo algo (o mucho) de Varnish, pero la mejor manera de empezar a jugar con el es ver algunos ficheros de configuración de ejemplo.

La web de la comunidad de Varnish tiene una enorme colección de configuraciones de ejemplo, que son un buen sitio para empezar a hacer las tuyas. Incluso hay algunas configuraciones de ejemplo estupendas para WordPress de fetch y receive en Github.

Creo que llegado este punto huelga decir que Varnish es muy personalizable, y que puede hacer maravillas para cualquier instalación WordPress, especialmente las de alto tráfico. También, hay que reconocerlo, tampoco es para cualquiera, al menos hay que tener conocimientos de conexión con servidores mediante Linux.

Lo mejor es que, con poco esfuerzo y gratis, puedes configurar una cache realmente potente con Varnish, basándote en los permisos de usuario, en el tipo de usuario o lo que se te ocurra.

Si quieres más pruebas del poder de Varnish, no solo Ayuda WordPress lo usa, también Facebook, y creo que no hay mejor prueba de web de alto tráfico que esta tremenda red social ¿no crees?.

Plugins WordPress

Hay, como ya comenté hace días, plugins WordPress que te permiten configurar o gestionar el comportamiento de Varnish en WordPress, los que encontrarás serán estos:

Bueno que ¿te animas a probar Varnish o ya lo has usado?

martes, 8 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Eliminar los atributos de ancho y alto del cargador de archivos WordPress

Posted: 08 May 2012 12:15 PM PDT

Pensarás que es una chorrada pero no, no es ninguna tontería, y te lo voy a explicar … si es que quieres estar al día claro. Si eres de los antiguos y no quieres progresar pasa de esta entrada.

Como ya sabrás, al insertar una imagen desde el cargador de archivos en el editor de WordPress se añaden automáticamente los atributos HTML width y height que indican el tamaño en el que se mostrará la imagen en tu tema activo, para eso, para que se adapte al ancho del tema y no quede horrible, pero esto ya lo sabías ¿no?.

Pues bien, esto ya es cosa antigua …

Con los nuevos diseños adaptables (o como se les denomina en inglés “responsive“), que se adaptan al navegador e incluso dispositivo desde el que se está visualizando una web, no tiene sentido definir atributos fijos de ancho y alto de imágenes, pues el tema se adaptará, como todos los elementos del contenido, al tamaño del dispositivo lector, sea este un ordenador, un smartphone o un iPad, mola ¿eh?.

¿Entiendes ya porque es posible que sea interesante eliminar – por defecto – los atributos width y height que el cargador de archivos inserta en el editor?. Pues eso, que si usas un tema con diseño adaptable no necesitas algo como esto:

<img src="ruta/a/tu/imagen" width="500" height="600" class="aligncenter size-full" alt="" title="">

Para eliminar por defecto los atributos que te sobrarán en un diseño adaptable sólo tienes que añadir el siguiente código al archivo functions.php de tu tema:

add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );  add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );    function remove_width_attribute( $html ) {      $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );      return $html;  }

Guardas y ya está. La próxima vez que insertes una imagen en tu editor ya no añadirá los atributos width y height, que de eso ya se ocupará tu tema adaptable (o “responsive“, como prefieras llamarlo)

Establecer varias imágenes destacadas a la vez

Posted: 07 May 2012 11:42 AM PDT

A mi me pasó, así que ¿por qué no te ha podido pasar a ti?. Me refiero a que la utilidad de mostrar imágenes destacadas, la función post-thumbnails disponible desde WordPress 2.9 está muy bien pero si tu tema anterior no las soportaba o no las usabas ¿a que es un coñazo añadir imágenes destacadas una a una a las viejas entradas?.

Pues la solución es sencilla … 

En vez de ir editando cada entrada y definiendo una imagen destacada para cada una ¡por fin vas a sacar utilidad a la pantalla de la librería multimedia!, si, esa pantalla, la gran desconocida, casi inútil la mayor parte del tiempo.

Lo primero que tienes que hacer es instalar y activar este plugin, luego te pasas por la Librería Multimedia y, bajo cada imagen, tendrás un nuevo enlace para usarla como destacada para la entrada a la que está asociada (en la que se adjuntó).

Así de sencillo, rápido y efectivo. Vamos, como todo en WordPress.

domingo, 6 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Lista completa de archivos por defecto de WordPress

Posted: 06 May 2012 05:25 AM PDT

Seguramente sea una recopilación algo boba pero nunca se sabe cuando puedes necesitar tener a mano la lista completa de los archivos por defecto de WordPress.

Una posibilidad es comprobar si algún troyano, por ejemplo, ha añadido archivos a cualquiera de las carpetas, se me ocurre.

En cualquier caso no está de más tenerla presente …

Aquí tienes la estructura de archivos y carpetas de WordPress (en su versión 3.3.2)

Estructura básica de carpetas de WordPress

  /wordpress/    	/wp-admin/  		/css/  		/images/  		/includes/  		/js/  		/maint/  		/network/  		/user/    	/wp-content/  		/plugins/  			/akismet/  		/themes/  			/twentyeleven/  				/colors/  				/images/  				/inc/  					/images/  				/js/  				/languages/  			/twentyten/  				/images/  					/headers/  				/languages/    	/wp-includes/  		/Text/  		/css/  		/images/  			/crystal/  			/smilies/  			/wlw/  		/js/  			/crop/  			/imgareaselect/  			/jcrop/  			/jquery/  				/ui/  			/plupload/  			/scriptaculous/  			/swfupload/  				/plugins/  			/thickbox/  			/tinymce/  				/langs/  				/plugins/  					/directionality/  					/fullscreen/  					/inlinepopups/  						/skins/  							/clearlooks2/  								/img/  					/media/  						/css/  						/js/  					/paste/  						/js/  					/spellchecker/  						/classes/  							/utils/  						/css/  						/img/  						/includes/  					/tabfocus/  					/wordpress/  						/css/  						/img/  					/wpdialogs/  						/js/  					/wpeditimage/  						/css/  						/img/  						/js/  					/wpfullscreen/  					/wpgallery/  						/img/  					/wplink/  				/themes/  					/advanced/  						/img/  						/js/  						/skins/  							/default/  								/img/  							/highcontrast/  							/o2k7/  								/img/  							/wp_theme/  								/img/  				/utils/  		/pomo/  		/theme-compat/  

Archivos de la carpeta raíz de WordPress

/wordpress/  	index.php  	license.txt  	readme.html  	wp-activate.php  	wp-app.php  	wp-blog-header.php  	wp-comments-post.php  	wp-config-sample.php  	wp-cron.php  	wp-links-opml.php  	wp-load.php  	wp-login.php  	wp-mail.php  	wp-pass.php  	wp-register.php  	wp-settings.php  	wp-signup.php  	wp-trackback.php  	xmlrpc.php

Archivos de la carpeta wp-admin

/wp-admin/  	about.php  	admin-ajax.php  	admin-footer.php  	admin-functions.php  	admin-header.php  	admin-post.php  	admin.php  	async-upload.php  	comment.php  	credits.php  	/css/  		colors-classic.css  		colors-classic.dev.css  		colors-fresh.css  		colors-fresh.dev.css  		farbtastic.css  		file-list.txt  		ie-rtl.css  		ie-rtl.dev.css  		ie.css  		ie.dev.css  		install.css  		install.dev.css  		media-rtl.css  		media-rtl.dev.css  		media.css  		media.dev.css  		wp-admin-rtl.css  		wp-admin-rtl.dev.css  		wp-admin.css  		wp-admin.dev.css  	custom-background.php  	custom-header.php  	edit-comments.php  	edit-form-advanced.php  	edit-form-comment.php  	edit-link-form.php  	edit-tag-form.php  	edit-tags.php  	edit.php  	export.php  	freedoms.php  	gears-manifest.php  	/images/  		align-center.png  		align-left.png  		align-none.png  		align-right.png  		archive-link.png  		arrows-dark-vs.png  		arrows-dark.png  		arrows-vs.png  		arrows.png  		blue-grad.png  		bubble_bg-rtl.gif  		bubble_bg.gif  		button-grad-active.png  		button-grad.png  		comment-grey-bubble.png  		date-button.gif  		ed-bg-vs.gif  		ed-bg.gif  		fade-butt.png  		fav-arrow-rtl.gif  		fav-arrow.gif  		fav-vs.png  		fav.png  		generic.png  		gray-grad.png  		gray-star.png  		icons32-vs.png  		icons32.png  		imgedit-icons.png  		list.png  		loading-publish.gif  		loading.gif  		logo-ghost.png  		logo-login.png  		logo.gif  		marker.png  		mask.png  		media-button-image.gif  		media-button-music.gif  		media-button-other.gif  		media-button-video.gif  		media-button.png  		menu-arrow-frame-rtl.png  		menu-arrow-frame.png  		menu-arrows.gif  		menu-bits-rtl-vs.gif  		menu-bits-rtl.gif  		menu-bits-vs.gif  		menu-bits.gif  		menu-dark-rtl-vs.gif  		menu-dark-rtl.gif  		menu-dark-vs.gif  		menu-dark.gif  		menu-shadow-rtl.png  		menu-shadow.png  		menu-vs.png  		menu.png  		no.png  		press-this.png  		required.gif  		resize-rtl.gif  		resize.gif  		screen-options-toggle-vs.gif  		screen-options-toggle.gif  		screenshots  		se.png  		sort.gif  		star.png  		toggle-arrow-rtl.gif  		toggle-arrow.gif  		upload-classic.png  		upload-fresh.png  		wheel.png  		white-grad-active.png  		white-grad.png  		widgets-arrow-vs.gif  		widgets-arrow.gif  		wordpress-logo.png  		wp-badge.png  		wp-logo-vs.png  		wp-logo.png  		wpspin_dark.gif  		wpspin_light.gif  		xit.gif  		yes.png  	import.php  	/includes/  		admin.php  		bookmark.php  		class-ftp-pure.php  		class-ftp-sockets.php  		class-ftp.php  		class-pclzip.php  		class-wp-comments-list-table.php  		class-wp-filesystem-base.php  		class-wp-filesystem-direct.php  		class-wp-filesystem-ftpext.php  		class-wp-filesystem-ftpsockets.php  		class-wp-filesystem-ssh2.php  		class-wp-importer.php  		class-wp-links-list-table.php  		class-wp-list-table.php  		class-wp-media-list-table.php  		class-wp-ms-sites-list-table.php  		class-wp-ms-themes-list-table.php  		class-wp-ms-users-list-table.php  		class-wp-plugin-install-list-table.php  		class-wp-plugins-list-table.php  		class-wp-posts-list-table.php  		class-wp-terms-list-table.php  		class-wp-theme-install-list-table.php  		class-wp-themes-list-table.php  		class-wp-upgrader.php  		class-wp-users-list-table.php  		comment.php  		continents-cities.php  		dashboard.php  		deprecated.php  		export.php  		file.php  		image-edit.php  		image.php  		import.php  		list-table.php  		manifest.php  		media.php  		menu.php  		meta-boxes.php  		misc.php  		ms-deprecated.php  		ms.php  		nav-menu.php  		plugin-install.php  		plugin.php  		post.php  		schema.php  		screen.php  		taxonomy.php  		template.php  		theme-install.php  		theme.php  		update-core.php  		update.php  		upgrade.php  		user.php  		widgets.php  	index-extra.php  	index.php  	install-helper.php  	install.php  	/js/  		cat.dev.js  		cat.js  		categories.dev.js  		categories.js  		comment.dev.js  		comment.js  		common.dev.js  		common.js  		custom-background.dev.js  		custom-background.js  		custom-fields.dev.js  		custom-fields.js  		dashboard.dev.js  		dashboard.js  		edit-comments.dev.js  		edit-comments.js  		editor.dev.js  		editor.js  		farbtastic.js  		gallery.dev.js  		gallery.js  		image-edit.dev.js  		image-edit.js  		inline-edit-post.dev.js  		inline-edit-post.js  		inline-edit-tax.dev.js  		inline-edit-tax.js  		link.dev.js  		link.js  		media-upload.dev.js  		media-upload.js  		media.dev.js  		media.js  		nav-menu.dev.js  		nav-menu.js  		password-strength-meter.dev.js  		password-strength-meter.js  		plugin-install.dev.js  		plugin-install.js  		post.dev.js  		post.js  		postbox.dev.js  		postbox.js  		revisions-js.php  		set-post-thumbnail.dev.js  		set-post-thumbnail.js  		tags.dev.js  		tags.js  		theme-preview.dev.js  		theme-preview.js  		theme.dev.js  		theme.js  		user-profile.dev.js  		user-profile.js  		utils.dev.js  		utils.js  		widgets.dev.js  		widgets.js  		word-count.dev.js  		word-count.js  		wp-fullscreen.dev.js  		wp-fullscreen.js  		xfn.dev.js  		xfn.js  	link-add.php  	link-manager.php  	link-parse-opml.php  	link.php  	load-scripts.php  	load-styles.php  	/maint/  		repair.php  	media-new.php  	media-upload.php  	media.php  	menu-header.php  	menu.php  	moderation.php  	ms-admin.php  	ms-delete-site.php  	ms-edit.php  	ms-options.php  	ms-sites.php  	ms-themes.php  	ms-upgrade-network.php  	ms-users.php  	my-sites.php  	nav-menus.php  	/network/  		admin.php  		edit.php  		index-extra.php  		index.php  		menu.php  		plugin-editor.php  		plugin-install.php  		plugins.php  		profile.php  		settings.php  		setup.php  		site-info.php  		site-new.php  		site-settings.php  		site-themes.php  		site-users.php  		sites.php  		theme-editor.php  		theme-install.php  		themes.php  		update-core.php  		update.php  		upgrade.php  		user-edit.php  		user-new.php  		users.php  	network.php  	options-discussion.php  	options-general.php  	options-head.php  	options-media.php  	options-permalink.php  	options-privacy.php  	options-reading.php  	options-writing.php  	options.php  	plugin-editor.php  	plugin-install.php  	plugins.php  	post-new.php  	post.php  	press-this.php  	profile.php  	revision.php  	setup-config.php  	theme-editor.php  	theme-install.php  	themes.php  	tools.php  	update-core.php  	update.php  	upgrade-functions.php  	upgrade.php  	upload.php  	/user/  		admin.php  		index-extra.php  		index.php  		menu.php  		profile.php  		user-edit.php  	user-edit.php  	user-new.php  	users.php  	widgets.php

Archivos de la carpeta wp-content

/wp-content/  	index.php  	/plugins/  		/akismet/  			admin.php  			akismet.css  			akismet.gif  			akismet.js  			akismet.php  			legacy.php  			readme.txt  			widget.php  		hello.php  		index.php  	/themes/  		index.php  		/twentyeleven/  			404.php  			archive.php  			author.php  			category.php  			/colors/  				dark.css  			comments.php  			content-aside.php  			content-featured.php  			content-gallery.php  			content-image.php  			content-intro.php  			content-link.php  			content-page.php  			content-quote.php  			content-single.php  			content-status.php  			content.php  			editor-style-rtl.css  			editor-style.css  			footer.php  			functions.php  			header.php  			image.php  			/images/  				comment-arrow-bypostauthor-dark-rtl.png  				comment-arrow-bypostauthor-dark.png  				comment-arrow-bypostauthor-rtl.png  				comment-arrow-bypostauthor.png  				comment-arrow-dark-rtl.png  				comment-arrow-dark.png  				comment-arrow-rtl.png  				comment-arrow.png  				comment-bubble-dark-rtl.png  				comment-bubble-dark.png  				comment-bubble-rtl.png  				comment-bubble.png  				headers  				search.png  				wordpress.png  			/inc/  				/images/  					content-sidebar.png  					content.png  					dark.png  					light.png  					sidebar-content.png  				theme-options.css  				theme-options.js  				theme-options.php  				widgets.php  			index.php  			/js/  				html5.js  				showcase.js  			/languages/  				twentyeleven.pot  			license.txt  			page.php  			readme.txt  			rtl.css  			screenshot.png  			search.php  			searchform.php  			showcase.php  			sidebar-footer.php  			sidebar-page.php  			sidebar.php  			single.php  			style.css  			tag.php  		/twentyten/  			404.php  			archive.php  			attachment.php  			author.php  			category.php  			comments.php  			editor-style-rtl.css  			editor-style.css  			footer.php  			functions.php  			header.php  			/images/  				/headers/  					berries-thumbnail.jpg  					berries.jpg  					cherryblossoms-thumbnail.jpg  					cherryblossoms.jpg  					concave-thumbnail.jpg  					concave.jpg  					fern-thumbnail.jpg  					fern.jpg  					forestfloor-thumbnail.jpg  					forestfloor.jpg  					inkwell-thumbnail.jpg  					inkwell.jpg  					path-thumbnail.jpg  					path.jpg  					sunset-thumbnail.jpg  					sunset.jpg  				wordpress.png  			index.php  			/languages/  				twentyten.pot  			license.txt  			loop-attachment.php  			loop-page.php  			loop-single.php  			loop.php  			onecolumn-page.php  			page.php  			rtl.css  			screenshot.png  			search.php  			sidebar-footer.php  			sidebar.php  			single.php  			style.css  			tag.php

Archivos de la carpeta wp-includes

/wp-includes/  	/Text/  		Diff  		Diff.php  	admin-bar.php  	atomlib.php  	author-template.php  	bookmark-template.php  	bookmark.php  	cache.php  	canonical.php  	capabilities.php  	category-template.php  	category.php  	class-IXR.php  	class-feed.php  	class-http.php  	class-json.php  	class-oembed.php  	class-phpass.php  	class-phpmailer.php  	class-pop3.php  	class-simplepie.php  	class-smtp.php  	class-snoopy.php  	class-wp-admin-bar.php  	class-wp-ajax-response.php  	class-wp-editor.php  	class-wp-error.php  	class-wp-http-ixr-client.php  	class-wp-walker.php  	class-wp-xmlrpc-server.php  	class-wp.php  	class.wp-dependencies.php  	class.wp-scripts.php  	class.wp-styles.php  	comment-template.php  	comment.php  	compat.php  	cron.php  	/css/  		admin-bar-rtl.css  		admin-bar-rtl.dev.css  		admin-bar.css  		admin-bar.dev.css  		editor-buttons.css  		editor-buttons.dev.css  		jquery-ui-dialog.css  		jquery-ui-dialog.dev.css  		wp-pointer.css  		wp-pointer.dev.css  	default-constants.php  	default-filters.php  	default-widgets.php  	deprecated.php  	feed-atom-comments.php  	feed-atom.php  	feed-rdf.php  	feed-rss.php  	feed-rss2-comments.php  	feed-rss2.php  	feed.php  	formatting.php  	functions.php  	functions.wp-scripts.php  	functions.wp-styles.php  	general-template.php  	http.php  	/images/  		admin-bar-sprite.png  		arrow-pointer-blue.png  		blank.gif  		/crystal/  			archive.png  			audio.png  			code.png  			default.png  			document.png  			interactive.png  			license.txt  			spreadsheet.png  			text.png  			video.png  		down_arrow.gif  		icon-pointer-flag.png  		rss.png  		/smilies/  			icon_arrow.gif  			icon_biggrin.gif  			icon_confused.gif  			icon_cool.gif  			icon_cry.gif  			icon_eek.gif  			icon_evil.gif  			icon_exclaim.gif  			icon_idea.gif  			icon_lol.gif  			icon_mad.gif  			icon_mrgreen.gif  			icon_neutral.gif  			icon_question.gif  			icon_razz.gif  			icon_redface.gif  			icon_rolleyes.gif  			icon_sad.gif  			icon_smile.gif  			icon_surprised.gif  			icon_twisted.gif  			icon_wink.gif  		toggle-arrow.png  		upload.png  		/wlw/  			wp-comments.png  			wp-icon.png  			wp-watermark.png  		wpicons.png  		wpmini-blue.png  		xit.gif  	/js/  		admin-bar.dev.js  		admin-bar.js  		autosave.dev.js  		autosave.js  		colorpicker.dev.js  		colorpicker.js  		comment-reply.dev.js  		comment-reply.js  		/crop/  			cropper.css  			cropper.js  			marqueeHoriz.gif  			marqueeVert.gif  		hoverIntent.dev.js  		hoverIntent.js  		/imgareaselect/  			border-anim-h.gif  			border-anim-v.gif  			imgareaselect.css  			jquery.imgareaselect.dev.js  			jquery.imgareaselect.js  		/jcrop/  			Jcrop.gif  			jquery.Jcrop.css  			jquery.Jcrop.dev.js  			jquery.Jcrop.js  		/jquery/  			jquery.color.dev.js  			jquery.color.js  			jquery.form.dev.js  			jquery.form.js  			jquery.hotkeys.dev.js  			jquery.hotkeys.js  			jquery.js  			jquery.query.js  			jquery.schedule.js  			jquery.serialize-object.js  			jquery.table-hotkeys.dev.js  			jquery.table-hotkeys.js  			suggest.dev.js  			suggest.js  			/ui/  				jquery.effects.blind.min.js  				jquery.effects.bounce.min.js  				jquery.effects.clip.min.js  				jquery.effects.core.min.js  				jquery.effects.drop.min.js  				jquery.effects.explode.min.js  				jquery.effects.fade.min.js  				jquery.effects.fold.min.js  				jquery.effects.highlight.min.js  				jquery.effects.pulsate.min.js  				jquery.effects.scale.min.js  				jquery.effects.shake.min.js  				jquery.effects.slide.min.js  				jquery.effects.transfer.min.js  				jquery.ui.accordion.min.js  				jquery.ui.autocomplete.min.js  				jquery.ui.button.min.js  				jquery.ui.core.min.js  				jquery.ui.datepicker.min.js  				jquery.ui.dialog.min.js  				jquery.ui.draggable.min.js  				jquery.ui.droppable.min.js  				jquery.ui.mouse.min.js  				jquery.ui.position.min.js  				jquery.ui.progressbar.min.js  				jquery.ui.resizable.min.js  				jquery.ui.selectable.min.js  				jquery.ui.slider.min.js  				jquery.ui.sortable.min.js  				jquery.ui.tabs.min.js  				jquery.ui.widget.min.js  		json2.dev.js  		json2.js  		/plupload/  			changelog.txt  			handlers.dev.js  			handlers.js  			license.txt  			plupload.flash.js  			plupload.flash.swf  			plupload.html4.js  			plupload.html5.js  			plupload.js  			plupload.silverlight.js  			plupload.silverlight.xap  		prototype.js  		quicktags.dev.js  		quicktags.js  		/scriptaculous/  			MIT-LICENSE  			builder.js  			controls.js  			dragdrop.js  			effects.js  			scriptaculous.js  			slider.js  			sound.js  			unittest.js  			wp-scriptaculous.js  		swfobject.js  		/swfupload/  			handlers.dev.js  			handlers.js  			license.txt  			/plugins/  				swfupload.cookies.js  				swfupload.queue.js  				swfupload.speed.js  				swfupload.swfobject.js  			swfupload-all.js  			swfupload.js  			swfupload.swf  		/thickbox/  			loadingAnimation.gif  			macFFBgHack.png  			tb-close.png  			thickbox.css  			thickbox.js  		/tinymce/  			/langs/  				wp-langs-en.js  				wp-langs.php  			license.txt  			/plugins/  				/directionality/  					editor_plugin.js  				/fullscreen/  					editor_plugin.js  					fullscreen.htm  				/inlinepopups/  					editor_plugin.js  					/skins/  						/clearlooks2/  							/img/  								alert.gif  								button.gif  								buttons.gif  								confirm.gif  								corners.gif  								drag.gif  								horizontal.gif  								vertical.gif  							window.css  					template.htm  				/media/  					/css/  						media.css  					editor_plugin.js  					/js/  						embed.js  						media.js  					media.htm  					moxieplayer.swf  				/paste/  					blank.htm  					editor_plugin.js  					/js/  						pastetext.js  						pasteword.js  					pastetext.htm  					pasteword.htm  				/spellchecker/  					changelog.txt  					/classes/  						EnchantSpell.php  						GoogleSpell.php  						PSpell.php  						PSpellShell.php  						SpellChecker.php  						/utils/  							JSON.php  							Logger.php  					config.php  					/css/  						content.css  					editor_plugin.js  					/img/  						wline.gif  					/includes/  						general.php  					rpc.php  				/tabfocus/  					editor_plugin.js  				/wordpress/  					/css/  						content.css  					editor_plugin.dev.js  					editor_plugin.js  					/img/  						audio.gif  						embedded.png  						image.gif  						media.gif  						more_bug.gif  						page.gif  						page_bug.gif  						trans.gif  						video.gif  				/wpdialogs/  					editor_plugin.dev.js  					editor_plugin.js  					/js/  						popup.dev.js  						popup.js  						wpdialog.dev.js  						wpdialog.js  				/wpeditimage/  					/css/  						editimage-rtl.css  						editimage.css  					editimage.html  					editor_plugin.dev.js  					editor_plugin.js  					/img/  						delete.png  						image.png  					/js/  						editimage.dev.js  						editimage.js  				/wpfullscreen/  					editor_plugin.js  					fullscreen.htm  				/wpgallery/  					editor_plugin.dev.js  					editor_plugin.js  					/img/  						delete.png  						edit.png  						gallery.png  						t.gif  				/wplink/  					editor_plugin.dev.js  					editor_plugin.js  			/themes/  				/advanced/  					about.htm  					anchor.htm  					charmap.htm  					color_picker.htm  					editor_template.js  					image.htm  					/img/  						colorpicker.jpg  						flash.gif  						gotmoxie.png  						icons.gif  						iframe.gif  						pagebreak.gif  						quicktime.gif  						realmedia.gif  						shockwave.gif  						trans.gif  						video.gif  						windowsmedia.gif  					/js/  						about.js  						anchor.js  						charmap.js  						color_picker.js  						image.js  						link.js  						source_editor.js  					link.htm  					shortcuts.htm  					/skins/  						/default/  							content.css  							dialog.css  							/img/  								buttons.png  								items.gif  								menu_arrow.gif  								menu_check.gif  								progress.gif  								tabs.gif  							ui.css  						/highcontrast/  							content.css  							dialog.css  							ui.css  						/o2k7/  							content.css  							dialog.css  							/img/  								button_bg.png  								button_bg_black.png  								button_bg_silver.png  							ui.css  							ui_black.css  							ui_silver.css  						/wp_theme/  							content.css  							dialog.css  							/img/  								tabs.gif  							ui.css  					source_editor.htm  			tiny_mce.js  			tiny_mce_popup.js  			/utils/  				editable_selects.js  				form_utils.js  				mctabs.js  				validate.js  			wp-mce-help.php  			wp-tinymce.js.gz  			wp-tinymce.php  		tw-sack.dev.js  		tw-sack.js  		wp-ajax-response.dev.js  		wp-ajax-response.js  		wp-list-revisions.dev.js  		wp-list-revisions.js  		wp-lists.dev.js  		wp-lists.js  		wp-pointer.dev.js  		wp-pointer.js  		wplink.dev.js  		wplink.js  	kses.php  	l10n.php  	link-template.php  	load.php  	locale.php  	media.php  	meta.php  	ms-blogs.php  	ms-default-constants.php  	ms-default-filters.php  	ms-deprecated.php  	ms-files.php  	ms-functions.php  	ms-load.php  	ms-settings.php  	nav-menu-template.php  	nav-menu.php  	pluggable-deprecated.php  	pluggable.php  	plugin.php  	/pomo/  		entry.php  		mo.php  		po.php  		streams.php  		translations.php  	post-template.php  	post-thumbnail-template.php  	post.php  	query.php  	registration-functions.php  	registration.php  	rewrite.php  	rss-functions.php  	rss.php  	script-loader.php  	shortcodes.php  	taxonomy.php  	template-loader.php  	/theme-compat/  		comments-popup.php  		comments.php  		footer.php  		header.php  		sidebar.php  	theme.php  	update.php  	user.php  	vars.php  	version.php  	widgets.php  	wlwmanifest.xml  	wp-db.php  	wp-diff.php

Y ya está, si alguna vez quieres saber donde está tal o cual archivo de WordPress ya sabes donde buscar.

El plugin más inútil

Posted: 05 May 2012 01:09 PM PDT

Seguro que tu conoces más plugins inútiles pero aquí tienes una lista de las cosas más tontas de plugin que existen, pequeñas piezas de código que, como mucho, sirven para pasar un buen rato y poco más.

Unicornify – Convierte los gravatars en imágenes de unicornios. Seguro que a las niñas les encanta.

Suicide Squirrel Threat Advisory System – Añade un widget para saber el nivel de amenaza de suicidio de ardillas. Imprescindible :D

RickRoll – Este debería estar hace tiempo proscrito del repositorio oficial. Su pecado es que convierte cada vídeo que incrustes en el vídeo del cantante Rick Astley “Never Gonna Give You Up”. Afortunadamente si lo desactivas todo vuelve a la normalidad.

Graceless degradation – ¿Usas aún IE6?, pues este es tu plugin, que te ofrecerá horas de diversión sin igual. Añade virguerías que solo verán los usuarios de Internet Explorer 6, como Comic Sans por todas partes, añade iconos de email que se mueven, textos en negrita que desaparecen y cosas de esas que echabas de menos.

Comic sans FTW – Si no eres “anti comic sans” seguro que te gustará usar esta tipografía en tu escritorio. Queda muy “potito”

Fun facts – Frases que no sirven de nada, como “Hello Dolly” pero en tu barra lateral, gracias a un bonito y nuevo widget.

Rainbowify – Este es genial, añade bonitos arcoiris a tu escritorio, para esos días … tontos.

Y para finalizar el celebérrimo e, incomprensiblemente, plugin por defecto “Hello Dolly“, que simplemente añade frases en el escritorio.

¡Hala!, si conoces más chorradas en forma de plugin nos lo haces saber en los comentarios.

jueves, 3 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

WordPress 3.4 beta 4

Posted: 03 May 2012 05:35 PM PDT

Ya está lista la beta 4 de WordPress 3.4, lista para probar, enredar y jugar. En esta nueva beta se han solucionado algunos fallos y se ha pulido la versión.

WordPress 3.4 – 30 novedades que tienes que conocer

Posted: 03 May 2012 05:03 PM PDT

Ya va quedando menos para la emisión final de WordPress 3.4, que ahora mismo va por la beta 3, así que va siendo hora de hacer un recopilatorio de todas las novedades de WordPress 3.4, que son bastantes, al ser una versión “mayor“.

Vamos a ver cuales te gustan más …

  1. Mejoras en la búsqueda y previsualización de temas
  2. Personalización de temas
  3. Mayor flexibilidad en tamaños de cabeceras personalizadas del tema
  4. Puedes elegir imágenes de cabecera desde la Librería Multimedia de tu sitio
  5. Enormes mejoras en la internacionalización y localización de WordPress
  6. Mejoras en la API XML-RPC
  7. Soporte de HTML en los piés de fotos (captions)
  8. Soporte de DFW en el editor
  9. Widgets de escritorio listos para traducción
  10. Mejoras en las pestañas de ayuda y Opciones de pantalla, adaptación a Firefox y cambios de color de las flechas en el esquema azul de escritorio
  11. Puedes añadir comentarios desde el editor de entradas
  12. oEmbed de Twitter incluido por defecto
  13. Enlaces por defecto listos para traducción
  14. Mejoras en el widget de enlaces
  15. Scroll infinito disponible en themes.php y themes-install.php
  16. Mejoras en la ventana de detalles de instalación de plugins, para que no haya que hacer scroll, por ejemplo
  17. Cambios en el esquema de color gris del escritorio
  18. Ahora no se permite prefijo vacío de base de datos en Multisitio
  19. Se han quitado las referencias a motores de búsqueda concretos en la instalación, cuando se te indica si quieres que el sitio sea visible para buscadores
  20. Nuevo menú de “Editar sitio” cuando un súper admin visita un sitio de su red Multisitio
  21. Autocompletado en la pantalla de “añadir usuarios” en Multisitio
  22. Nueva opción de acciones en masa en la pantalla de sitios de Multisitio, pudiendo activar la red para varios sitios a la vez
  23. Ahora el espacio por defecto para nuevos sitios en Multisitio pasa de 10 Mb (ridículo) a 100 Mb. Ojo si no dispones de mucho espacio, tendrás que cambiarlo manualmente.
  24. Se ha añadido el plugin jQuery UI Touch Punch para mejorar la experiencia de arrastrar en dispositivos móviles
  25. Mejoras en la compresión de CSS y JS gracias a la última versión del YUI Compressor incluida
  26. Se han actualizado varias funciones relativas a los temas, que deberás actualizar.
  27. Actualizadas las librerías jQuery UI, PHPmailer, SimplePie, Plupload, swfobject
  28. Actualizado TinyMCE
  29. Mejoras en las opciones de los temas Twenty Ten y Twenty Eleven, con nuevas opciones
  30. Si el tema lo soporta puedes incluir formatos de entrada en los menús de navegación

Hay muchas más, que encontrarás en la página de WordPress 3.4 del Codex

Si quieres ir probando pásate por WordPress beta testing.

Ah, y aquí la encuesta … 

Take Our Poll

El poder de WordPress en núneros

Posted: 03 May 2012 11:38 AM PDT

Me avisa nuestro amigo Héctor que ha realizado una infografía sobre los números de WordPress, donde se muestra el poder de WordPress, en cifras, que nunca mienten.

Si quieres ver la infografía completa haz clic en la siguiente imagen …

miércoles, 2 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Citas como en los diarios digitales

Posted: 02 May 2012 05:03 PM PDT

Hay una funcionalidad que siempre me ha encantado en los diarios digitales. Me refiero a los bloques de citas del texto que aparecen en los artículos, pues me parecen un modo genial de resaltar frases clave de una noticia o artículo de opinión.

Esto, en WordPress, solo teníamos la opción de añadir citas dentro del texto, en línea con el mismo, pero eso es cosa del pasado.

Ahora, gracias a Simple pull quote, es sencillo a más no poder. Una vez instales y actives este plugin añade unos nuevos botones al editor de manera que, tras seleccionar el texto a marcar como cita, pulsas el icono de pull quote y ya está, se mostrará en tu entrada como una bonita cita independiente del contenido general, remarcándolo, como en los diarios digitales.

Lo que hacen los iconos del editor es añadir un shortcode que activa la cita en la frase elegida, por lo que como puedes imaginar también puedes usar el shortcode directamente.

El resultado son bonitas citas acompañando tu texto, atrapando la atención del lector y destacando lo importante de tu artículo.

Puedes ver como lo usa un antiguo alumno del Master de WordPress en su blog de periodismo de motor.

martes, 1 de mayo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Añadir target=”_blank” a todos los enlaces

Posted: 01 May 2012 05:03 PM PDT

Por supuesto, hay plugins para convertir todos los enlaces de manera que se abran en nueva ventana o pestaña pero ¿para qué usar plugins cuando puedes hacerlo con una simple función?.

Si eres de los que te gusta que los enlaces sean ‘target="_blank"‘ y no quieres andar modificando cada enlace puedes añadir esta función a tu plugin de funciones o fichero functions.php de tu tema activo:

// Abrir todos los enlaces en ventana nueva  function autoblank($text) {  	$return = str_replace('<a', '<a target="_blank"', $text);  	return $return;  }  add_filter('the_content', 'autoblank');

Guardas los cambios y ya tienes lo que buscabas, todos los enlaces del contenido de las entradas se abrirán en una nueva ventana (o pestaña) del navegador.

Tus amigos también usan WordPress

Posted: 01 May 2012 03:13 PM PDT

El equipo de WordPress.com acaba de lanzar una nueva funcionalidad que, al igual que otros servicios y tarde para lo que es WordPress, te permite descubrir qué amigos de Twitter, Facebook y Google también usan WordPress.

Solo tienes que ir a la página de Buscar amigos y permitir la conexión con tu cuenta de Twitter, Facebook o Google para que el sistema busque entre tus amigos.

A continuación te muestra una lista de los mismos y sus sitios alojados en WordPress.com, pudiendo seguir sus blogs fácilmente mediante el botón “Follow” junto a su perfil, o si lo prefieres seguirlos a todos, así de sencillo.

Me parece muy interesante, y estoy descubriendo muy buenos blogs de mis amigos ¿y tu?

Una función WordPress en tu correo, cada día

Posted: 01 May 2012 07:12 AM PDT

Si no usas Delicious ni los favoritos de Twitter, si no te gusta suscribirte a feeds RSS o tener blogs favoritos, quizás lo tuyo sea el correo electrónico.

Y como para todo hay opciones, si quieres aprender nuevas funciones WordPress, y recibir una buena referencia cada día en tu email ya tienes un servicio que hace exactamente eso.

The Daily WordPress reference es un servicio sencillo, pero efectivo, que ha iniciado el envío de documentación sobre WordPress por email. Simplemente apuntas tu dirección de correo electrónico y recibirás en tu email una función diaria de WordPress, para hacer tu biblioteca de desarrollador, poco a poco.

Este es un ejemplo de los emails que recibirás … 

En la misma página de suscripción tienes varios ejemplos al final de la misma.

Para todo lo demás, Ayuda WordPress.

Cómo activar entradas destacadas en Twenty Eleven

Posted: 30 Apr 2012 05:37 AM PDT

El tema por defecto de WordPress, Twenty Eleven, tiene incorporada la funcionalidad de entradas destacadas, que las mostrará en un deslizador, pero no es obvio su uso.

Si quieres aprovechar esta funcionalidad no hay ajuste que modificar ni opción que activar, solo tienes que tener en cuenta lo siguiente para activarla:

  1. Crea una nueva página usando como plantilla la denominada “Showcase template” en el widget de “Atributos de página”
  2. En “Ajustes de lectura” de tu WordPress elige mostrar una página estática en portada, y eliges la página recién creada con la plantilla showcase
  3. Marca como “sticky” las entradas que quieres que aparezcan en el deslizador
  4. Añade una imagen destacada en la entrada, que será la que se mostrará en el deslizador. Si la imagen es del tamaño máximo (1000×288 pixels) o mayor se mostrará como fondo del área del deslizador, con el título de la entrada sobre la misma. Si es menor aparecerá a la derecha del área, con el título y el extracto a la izquierda de la misma. También debes saber que si la imagen destacada es igual o mayor que el tamaño máximo, en la plantilla de entrada simple esta reemplazará la imagen de cabecera

Hasta aquí como activar el deslizador, pero este tiene una característica que puedes cambiar. Y es que por defecto no tiene movimiento automático, sino que se muestran unos puntos en los que debes hacer clic para cambiar de una entrada destacada (sticky) a otra.

Si quieres que el deslizador avance automáticamente debes añadir un poco de código, este:

<script type="text/javascript" charset="utf-8">      // Avance automático del deslizador de Twenty Eleven      // Fuente: http://pastebin.com/s6JEthVi      jQuery(document).ready(function(){          var change_every = 10; // Los segundos que el deslizador tardará en hacer el avance automático          var current = 1;          function auto_advance(){              if(current == -1) return false;              jQuery('.feature-slider a').eq(current % jQuery('.feature-slider a').length).trigger('click', [true]);              current++;          };          setInterval(function(){auto_advance()}, change_every * 1000);      });  </script>

Este código debes añadirlo, bien en la plantilla de página de “showcase” o si lo prefieres en el widget de “showcase”, pero sin ponerle título, funcionará igual.

Nota: este truco último no funciona en wordpress.com, pues está limitada la inserción de código script

Seguidores

Archivo del blog