Hoy os traigo otro artículo para incorporarlo en la api de wordpress, el loop de wordpress es invocado cada vez que solicitamos articulos o páginas, en el index por ejemplo sale por defecto la solicitud de los últimos artículos publicados, en el archivo los articulos de cierto mes o cierta categoria, etc…
La api de wordpress nos permite una configuración bastante intensa de la forma de solicitar y mostrar contenido en los loops de wordpress, lo primero de todo es establecer los posts que queramos mostrar en el loop, se puede hacer usando la función query_posts();
query_posts('cat=4,5'); //Todos los que esten en la categoria 4 y 5
query_posts('tag=mitag'); //Los que tengan cierto tag...
query_posts('meta_key=nombrekey&meta_value=valorkey'); //Tenga un campo personalizado con dichos valores
$categoria=$cat; // asignamos la actual categoria
$query= 'cat=' . $categoria. '&orderby=date&order=ASC'; //ordenacion ascendente por fecha
query_posts($query);
Leer “Configurar el loop de wordpress” »
Podemos crear una plantilla para publicar post especificos en wordpress de la misfa forma que ocurre con las páginas gracias a la combinación del uso de la API de wordpress y del plugin Custom Post Template. Lo que queremos conseguir es mostrar posts de distintas maneras en función a que plantilla seleccionamos en el menu de post:

Gracias a eso, y a un formato de recognición de templates de post, con que añadamos el siguiente comentario en el .php del theme de wordpress podremos definir un formato especifico para ese tipo de post (como añadir metas especificos, imagenes, colores, opciones etc… especifico), explotando más las posibilidades de wordpress.
< ?php
/*
Template Name Posts: nombrePlantilla
*/
?>
Leer “Crear Plantillas de themes para post en WordPress” »
Aquí una rápida pieza de código que permitira ocultar contenido para luego mostrarlo si así lo quiere el usuario. Empleamos javascript junto al reconocimiento DOM de elementos html para definir el contenido de un div.
<head>
<script type="text/javascript">
function mostrar()
{
document.getElementById("contenedor").innerHTML = 'hola mundo';
}
</script>
</head>
<body>
<a href="javascript://" onclick="mostrar()">Mostrar contenido del contenedor</a>
<div id="contenedor>
<!-- Este contenedo ahora mismo esta vacio -->
</div>
</body>
Leer “Mostrar elementos ocultados con javascript” »
Hoy en día ya no basta con describir los metatag de forma eficiciente, sino que además debes identificar si tanto google, como la estructura de tu página se identifican con relevante en los terminos que tratas de posicionar.
Para ello existen varias estrategias de análisis, la primera de ellas es hacer un scaneo de las palabras más repetitivas de tu página web. Para ello, podemos emplear el escaneo de SEO xray de seobook.

Leer “Analizar si el contenido es relevante” »
“Una persona suele leer con una compresión de entre 45-65%, alguien entrenado llega hasta el 85%, un filosofo es capaz de alcanzar entre 90-95% de compresión lectora. El autor del texto sería capaz de entender hasta el 99% de este, solo Dios y Google es capaz de entender el 100%“
Una recopilación de como construir clases en PHP junto a un diagrama de la relación UML. Útil para ir obteniendo nociones sobre el modelado del código.
Herencia
Indica que una clase hereda todos los atributos y métodos de otra, hay que tener en cuenta que en el diagrama UML el triangulo toca al padre:
class Senior {
}
class Junior extends Senior {
}

Leer “Programacion orientada a objetos y diagramas UML en PHP” »
Bueno, hoy os traigo un poco de humor SEO, he photoshopeado la típica imagen que muestra el mapa de los clicks donde suelen hacer click los usuarios en el buscador y he transportado la teoría a los urinarios públicos (ni cagando puedo dejar de pensar en el SEO).

El posicionamiento geolocalizado está ganando cáda vez más importancia debido a la búsqueda universal implementa ya resultados geolocalizados, y debido a la inserción de la vida cotidiana en internet (ya buscamos proximos destinos, servicios, compras…).
La forma de realizar una optimización de la página para adaptarla a los resultados geolocalizados es cuestión de muchos factores. El primero de ellos es la optimización de los metatags, un ejemplo de meta-tags optimizados a la geolocalización es la siguiente:
<meta name="geo.placename" content="Madrid" />
<meta name="geo.position" content="28.8092295;-2.1007066" />
<meta name="geo.region" content="es" />
<meta name="ICBM" content="28.8092295;-2.1007066" />
Optimización de los metatags
Otros factores importantes para el posicionamiento geolocalizado son los siguientes:
Inserción en Local Buisness Center
Esta opción solo seria para las empresas que quieran geolocalizarse con google, para ello podemos recurrir al Local Buisness Center de Google.
Usar un dominio del país de origen
Un factor muy relevante, usar un dominio .es o .mx (Dominios de Nivel Superior Geográfico) influye muchisimo cuando se busca en google, a veces es el condicionante entre salir antes que la competencia directa.
Optimización del contenido
Un clasico que nunca hay que olvidar, si por ejemplo queremos posicionar una empresa para servicios en madrid, es importante que esta keyword tenga una densidad entre el 1,5% y el 3% del contenido en la página.
Avisar a los buscadores de la localización de nuestra página
Paneles de controles como Google Webmaster Tool, permite geolocalizar el país de destino de una página web, esta opción se encuentra en la pesataña “configuración”.
Pues eso, el motivo por el que ahora únicamente empleo las redes sociales para mandar mensajes o incluso mailearlos…

Consta de una variable para establecer un nombre de id para establecer las opciones en la base de datos, añadir la acción al hook del menu al construir el plugin, establecer como aparecerá en la pestaña las opcinones con add_options_page, y el código que mostrará y gestionará las opciones insertadas. Aquí un ejemplo básico de como quedaría:
<?php
class miPlugin()
{
var $db_option = 'miPlugin_Options';
function miPlugin()
{
//Línea para incluir el menú
add_action('miMenu', array(&$this, 'admin_menu'));
}
function miMenu()
{
add_options_page('Opciones del plugin', 'Algun id', 8, basename(__FILE__), array(&$this, 'opciones'));
}
function opciones()
{
$options = $this->get_options();
if (isset($_POST['submitted'])) {
check_admin_referer('nonce');
$options = array();
$options['a'] = $_POST['a'];
$options['b'] = $_POST['b'];
update_option($this->db_option, $options);
}
// Aquí establecemos algunas variables que usaremos en el form
$action_url = $_SERVER['REQUEST_URI'];
$a = $options['a'];
$b = $options['b'];
?>
<form name="SnazzyArchives" action="<?php echo $action_url ?>" method="post">
<?php wp_nonce_field('nonce'); ?>
<input type="checkbox" name="a" <?php echo $a ?> /><label> Show Posts</label> <br />
<input type="checkbox" name="b" <?php echo $b ?> /><label> Show Pages</label> <br />
<div><input type="submit" name="Submit" value="Update" /></div>
</form>
<?php
}
}
?>
Solo decir que que las opciones se obtienen con $options = $this->get_options(); y se establecen con update_option($this->db_option, $options); Además, sirve como parametro de seguridad para cercionarnos que se está empleando el formulario correcto. Esto luego se comprueba con check_admin_referer(‘nonce’);