Chuleta para WordPress, CSS y HTML

Os traemos unos PDF de lo mas interesante, donde veréis reflejado un resumen de lo que es WordPress, CSS y HTML.

En el PDF de WordPress podréis echar un vistazo rápido a

  • Archivos de plantillas básicos
  • Código PHP para la cebecera
  • Códigos PHP para las plantillas
  • Contenido Extra

Respecto al de CSS encontrareis referencias a

  • Sintaxis
  • Fuentes
  • Fondos
  • Listas
  • Textos
  • etc…
En la de HTML encontrareis cosas de
  • Sintaxis
  • Estructura
  • Tablas
  • Cabeceras
  • Formularios
  • Caracteres Especiales
  • etc…
Y aquí podéis descargar los PDF en cuestión

| PDF  | CSS  | HTML

Avisa automáticamente a tus editores que sus artículos han sido publicados

Si estamos usando un blog en el que varios autores publican artículos al mismo tiempo, seria un detalle por parte de los administradores el poder ofrecerles a sus editores una información adicional y personal que les hiciera sentirse importantes para que escriban cada día mas.

Una de esas personalizaciones que no vienen por defecto en WordPress y que seria geniales implementar para tal caso es el de un acuse de recibo cada vez que se publique un artículo nuevo. El código que hay que añadir, lo que hace es que cada vez que un post o artículo es publicado, se le envía una notificación al autor para que sepa que ya ha sido publicado uno de sus artículos. Podemos implementar esta funcionalidad de la siguiente manera, seguimos modificando el archivo functions.php y en este caso deberemos copiar en él, el siguiente código

 

function wpr_authorNotification($post_id) {
   $post = get_post($post_id); // Recuperamos el identificador del post publicado
   $author = get_userdata($post->post_author); // Obtenemos los datos del autor
   $message = "Hola ".$author->display_name.", Tu post, ".$post->post_title." acaba de ser publicado. Bien Hecho!";
   wp_mail($author->user_email, "Your article is online", $message); // recuperamos el mail del autor
}
add_action('publish_post', 'wpr_authorNotification');

 

Para que este complemento funcione correctamente, deberemos cerciorarnos que la información de todos nuestros usuarios editores, este bien cumplimentada, ya que la información que necesita la función se sacara de los datos que estén metidos en el usuario en cuestión. Resumiendo, que si el usuario no tiene cumplimentado el campo mail en su información de wordpress, nunca le llegaran los correos.

 

Define un mínimo de palabras por entrada

Cuantas veces nos hemos encontrado en la situación de tener un blog que por una cosa o por otra, escriben o gestionan varias personas. Normalmente si buscas a editores que escriban en tu blog, como mínimo querrás que sus entradas tengan un mínimo de palabras como pueda tener un articulo de periódico.

Cuantas veces habremos oído (ya sea cuando estudiábamos, si escribimos artículos, etc.. ),  ”Para mañana una redaccion de 100 palabras como mínimo…” ó “El artículo debe de tener al menos 150 palabras…”.

En WordPress podemos hacer lo mismo, indicar un mínimo de palabras para cada entrada o post de nuestro blog.

Para ello, simplemente deberemos hacer una modificación muy sencilla en en archivo functions.php de nuestro WordPress. Deberemos añadir el siguiente código a dicho archivo, como una función más.

function minWord($content){
	global $post;
        $num = 100; //Indicamos el numero minimo de palabras del post
	$content = $post->post_content;
	if (str_word_count($content) <  $num)
	    wp_die( __('Error: el post esta por debajo del minimo de palabras aceptadas.') );
}
add_action('publish_post', 'minWord');

De esta forma, cada vez que alguien se ponga a crear un post para tu blog, sabras que al menos, tendrá el número mínimo de palabras para ser publicado.

Ojala hubiera forma de hacer una función que te comprobara la calidad del post, pero para eso aun deberemos esperar a que la web semántica este un poco mas madura :)

Lista completa de archivos por defecto de WordPress

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.

Añade notas privadas a tus entradas de WordPress

Cuando hay varios editores en un mismo blog, quizás queramos dejar notas en las entradas para que sean leídas exclusivamente por los administradores del sitio. Haciendo alguna aclaración o puntualización a alguna cosa que mejorar o destacar de la entrada escrita por el editor. Por defecto WordPress no trae integrada esta funcionalidad que puede resultar bastante interesante y sencilla de implementar en nuestro blog. Evidentemente es extensible a cualquier etiqueta que queráis crear para vuestro uso interno. Esto que os comento aquí simplemente es una primera idea :)

Los pasos para crearnos la nueva etiqueta  serian los siguientes, deberemos copiar el siguiente código en el archivo functions.php de nuestra instalación de WordPress,

add_shortcode( 'note', 'sc_note' );
function sc_note( $atts, $content = null ) {
	 if ( current_user_can( 'publish_posts' ) )
		return '<div class="note">'.$content.'</div>';
	return '';
}

Una vez guardado el archivo y si queremos hacer uso de la nueva etiqueta en nuestra entrada actual, simplemente deberemos hacer referncia a ella de la siguiente manera

[note]
Esta es una nota personal que solo los administradores pueden ver! :)
[/note]

A parte de crear notas solamente visibles por los administradores, podremos darle el estilo que queramos, ya que el codigo por el que sustituye la etiqueta [note] es un <div class=”note”></div> con lo que podremos modificar nuestra css para darle el estilo que queramos.

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

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.

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

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.

Saluda a tus lectores habituales y a los nuevos

¿A que te gusta que en la cafetería te reconozcan por tu nombre y te preparen el café como te gusta?, pues lo mismo tienes tu que hacer con tus lectores del blog.

Si quieres agradecer a tus lectores habituales la visita y saludarles, y a los nuevos animarles a seguir leyéndote, con algún mensaje personalizado, puedes hacerlo muy fácil.

Y no me refiero a usuarios registrados, que eso ya lo vimos, sino a simples visitantes …

Solo tienes que elegir el lugar del tema en el que colocar este código y personalizarlo un poco a tu gusto:

<?php
if(isset($_COOKIE['comment_author_'.COOKIEHASH])) {
	$lastCommenter = $_COOKIE['comment_author_'.COOKIEHASH];
	echo "¡Bienvenido de nuevo querido lector, espero que disfrutes hoy de mis artículos! ". $lastCommenter ."!";
} else {
	echo "¡Vaya! parece que eres nuevo por aquí, pasa y lee, si no encuentras algo usa el buscador.";
}
?>

Un par de buenos lugares para poner un código así sería antes del loop en index.php y en single.php, por ejemplo, pero tu decides.

Redirección para accesos fallidos en WordPress

Normalmente, si un usuario falla al tratar de acceder en WordPress le devuelve a la misma pantalla con un mensaje de error, que ya aprendimos a modificar para evitar dar pistas a hackers, pero ¿y si quieres enviar al usuario torpe a una página de error distinta?.

Se me ocurre, por ejemplo, enviarle a una página de contacto para que reclame la clave, o incluso a una página en la que ofrecerle servicios personalizados para usuarios registrados. Bueno, lo que sea que se te ocurra.

Si quieres redirigir a los usuarios que acceden a tu WordPress a una página concreta puedes usar la función de login de WordPress, que puedes añadir donde te guste, por ejemplo en un widget de texto, pero con un modificador que la envíe a una URL a tu elección, algo así:

wp_login_form(array( 'redirect' => site_url() ));  // en este caso le mandas a la portada de tu web de nuevo

Ahora bien, como he dicho, esto es para los accesos exitosos, cuando el usuario introduce bien sus datos. Pero si lo que quieres es hacer justo lo que comentaba antes, hacer redirección cuando se equivocan, y lo ideal es que esto pase en la pantalla de acceso habitual de WordPress, entonces lo que tienes que hacer es añadir el siguiente código a tu plugin de funciones o archivo functions.php del tema activo:

add_action( 'wp_login_failed', 'my_front_end_login_fail' );  // hook para el accesso fallido

function my_front_end_login_fail( $username ) {
     $referrer = $_SERVER['HTTP_REFERER'];  // ¿de donde viene?
     // si hay una referencia válida, y no es la pantalla de acceso por defecto
     if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
          wp_redirect( $referrer . '?login=failed' );  // le añadimos algo de información (login-failed) a la URL del tema en uso
          exit;
     }
}

Ya solo te queda guardar los cambios y probar que funciona.

Desactivar la comprobación de actualizaciones de plugins

Si tienes una configuración cerrada de WordPress, con una serie de plugins que has modificado o que no quieres que se modifiquen porque, simplemente, funcionan, seguro que no quieres que nadie actualice esos plugins.

Es más, lo ideal sería incluso evitar la comprobación de actualización de los plugins.

Pues nada, solo tienes que añadir este código a tu plugin de funciones o fichero functions.php de tu tema activo:

// Desactivar comprobación de actualización de plugins
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );

Guardas los cambios y ya está, tus plugins seguirán ahí mientras los necesites, sin pedirte actualizaciones. Eso si, ten en cuenta que antes de actualizar WordPress a una versión nueva deberás comprobar si hay versiones nuevas o, al menos, si las versiones actuales de los plugins son compatibles, en caso contrario deberías quitar el código y actualizar los plugins que quieras actualizar.

Por otra parte, si solo quieres no actualizar algún plugin concreto, pues este truco afecta a todos, puedes decidir que algún plugin no se actualice.

Código encontrado en wp snippets