WordPress integrará soporte para slideshow y mapas

Esta mañana leyendo los feeds me encuentro con esta noticia que creo que hará las delicias de más de un usuario de WordPress. Al parece en la nueva versión se integrará un soporte para facilitar la insercción de slideshows apartir de los creados en RockYou, un sitio como flickR pero orientado a la creación de slideshows. Y tambien podremos disfrutar de la posibilidad de insertar mapas gracias a la integración Platial.com.

slideshow-tab.PNG

Los usuarios de WordPress.com ya pueden disfrutar de estas mejoras y lo pueden hacer de una forma fácil y cómoda.

Forma de uso

Supongamos que el enlace a nuestro slideshow en RockYou es el siguiente.

http://www86.rockyou.com/show_my_gallery.php?instanceid=39325435&s_pindex=4

Pues en nuestro código deberíamos insertar algo parecido a esto.

[rockyou id=39325435]

Siendo el id igual al instanceid que aparece en la url de nuestras imagenes.

Tambien podemos definir un tamaño para nuestro slide indicandolo como parametros en el contenido de nuestros posts/páginas.

[rockyou id=39325435&w=400&h=300]

aNieto2k

Plugin StarTrekIntro: cómo insertar código validable de YouTube en los posts de WP

validxhtml.jpg

A raiz del post de Victor. R. Ruiz en Linotipo, Test W3C en las alturas blogosféricas, nos pusimos las pilas en Minoic Net para que todos nuestros blogs validaran correctamente XHTML. Aún estamos en ello, no es tarea fácil pero ya tenemos tres blogs con 0 errores. Y también hay que meterse con los CSS :( .

El caso es que uno de los widgets que no validan XHTML es el de YouTube. Así es que he escrito un pequeño plugin de WordPress, al que he llamado StarTrekIntro, para generar el código validable de los vídeos de YouTube.

Descarga del plugin –> StarTrekIntro

Uso del plugin:

Supongamos que se quiere insertar el vídeo http://www.youtube.com/v/30w8DyEJ__0 con width=”425″ y height=”350″ (valores extraidos del código embed, NO de la url), sólamente se tiene que insertar el siguiente código en el post:

<?php echo GeneraCodigoYouTube(”http://www.youtube.com/v/30w8DyEJ__0″,425,350); ?>

Requiere tener instalado el plugin Exec-php para poder incluir código php en páginas y posts.

¿Fácil, no? … ¡Pues a disfrutar de código que valide correctamente XHTML en nuestros blogs!.

2 temitas para WordPress

Jiajia

429952197_8a10256455.jpg

[Descargar][Demo][url]

Pink WordPress

screenshot.png

* Hay que hacer una modificación en el fichero config.php… no entiendo por que…

[Descargar][Demo][url]

aNieto2k

Todavía más sobre el consumo de CPU con WordPress

Muchos de quienes utilizamos WordPress sabemos que una de las preocupaciones a tener en cuenta es el consumo de CPU, un tema que ha dado para más de algún post —como aquellas lecciones aprendidas hace algún tiempo o el segundo round de soluciones publicadas más recientemente.

(more…)

WordPress 2.1.3 RC2

Y otra vez más, ya tenemos aquí nuevas actualizaciones de WordPress. En este caso la Release Candidate 2 de las versiones 2.1.10 y 2.1.3 respectivamente.

En esta ocasión se corrige el Cross Site Scripting en PHP_SELF, por lo que es recomendable actualizar.

Podéis descargarlas de aqui: 2.1.10 RC2 | 2.1.3 RC2

InKiLiNo

Haz que tu WordPress sirva JSON

CalinSoft.net me preguntaba donde se encontraba el fichero wp-json.php que uso para servir un objeto json como método de sindicación, lo he encontrado aqui y lo pongo a vuestra disposición para que podais utilizar este sistema para ofrecer más opciones de sindicación.


<?php

if (empty($wp)) {
    require_once('wp-config.php');
    wp('feed=rss2');
}

function json_cats() {
    $categories = get_the_category();
    $the_list = '';
    foreach ( (array) $categories as $category ) {
        $category->cat_name = convert_chars($category->cat_name);
        $cats[] = $category->cat_name;
    }
    $the_list = '"' . implode('","', $cats) . '"';
    return apply_filters('the_category_json', $the_list, $type);
}

function json_safe_text($t) {
    return str_replace(
            array("\",'"', "n", "t",  "r"),
            array("\\", '\"', "\n", "\t", "\r"),
            $t);
}

//header('Content-type: application/json; charset=' . get_option('blog_charset'), true);
header('Content-type: text/javascript; charset=' . get_option('blog_charset'), true);
$more = 1;

global $wp_query;
$total_posts = count($wp_query->posts);

?>/*

This is a special WordPress feed written to be parsed through a JSON interpreter.
You can learn more at: http://xyz.com

*/
<?php if( $_GET['callback'] ) { ?>wp_jason_feed(eval(<?php } ?>{
    title: "<?php bloginfo_rss('name'); ?>",
    link: "<?php bloginfo_rss('url') ?>",
    self: "<?php bloginfo_rss('url') ?>",
    description: "<?php bloginfo_rss("description") ?>",
    language: "<?php echo get_option('rss_language'); ?>",
    pubDate: "<?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?>",
    generator: {
        name: "Wordpress/<?php bloginfo_rss('version') ?>", url: "http://wordpress.org"
    },

    <?php do_action('json_head'); ?>

    entries: [
<?php while( have_posts()) : the_post(); $msdate = get_post_time('Y-m-d H:i:s', true); ?>

    {
        id: "<?php the_guid(); ?>",
        title: "<?php the_title_rss() ?>",
        author: {
            name: "<?php the_author() ?>"
        },
<?php if (get_option('rss_use_excerpt')) : ?>
        description: "<?php echo json_safe_text(get_the_excerpt()) ?>",
<?php else : ?>
        description: "<?php echo json_safe_text(get_the_excerpt()) ?>",
<?php if ( strlen( $post->post_content ) > 0 ) : ?>
        content: "<?php echo json_safe_text(get_the_content()) ?>",
<?php else : ?>
        content: "<?php echo json_safe_text(get_the_excerpt()) ?>",
<?php endif; ?>
<?php endif; ?>
<?php /*
        description: '<?php echo json_safe_text(get_the_excerpt()) ?>',
*/ ?>
        categories: [<?php echo json_cats() ?>],
        link: "<?php permalink_single_rss() ?>",
        humanDate: "<?php echo mysql2date('D, d M Y H:i:s +0000', $msdate, false); ?>",
        machineDate: {
            month: <?php echo (int) mysql2date('m', $msdate, false); ?>,
            date: <?php echo (int) mysql2date('d', $msdate, false); ?>,
            year: <?php echo (int) mysql2date('Y', $msdate, false); ?>,
            hours: <?php echo (int) mysql2date('H', $msdate, false); ?>,
            minutes: <?php echo (int) mysql2date('i', $msdate, false); ?>,
            seconds: <?php echo (int) mysql2date('s', $msdate, false); ?>,
            timezone: "+0000"
        }<?php do_action('json_item'); ?>

    }<?php if( --$total_posts ) { ?>, <?php } ?>

<?php endwhile; ?>
    ]
}<?php if( $_GET['callback'] ) { ?>));<?php } ?>

Para aprovecharte de este sistema, guarda este código en el fichero wp-json.php y ubícalo en el directorio raiz de tu WordPress.

aNieto2k

aNieto2k en JSON

Apartir de hoy aNieto2k puede llegar a más sistemas, gracias al uso de wp-json, la sindicación que hasta ahora se realizaba mediante XML pasa a estar disponible tambien en JSON. De esta manera las aplicaciones web que usen este sistema podrán aprovecharse del contenido de la web usando este sistema y evitandose unos recorridos por el XML que suelen ser muy laboriosos.

Las posiblidades son exactamente iguales que el feed XML:

Busquedas: 

Para buscar información dentro de aNieto2k todos los posts que contengan la palabra alonso, bastaría hacer algo así. 

http://www.anieto2k.com/wp-json.php?s=alonso

Categorías:

Para mostrar todos las últimas 10 entradas de una categorías, deberemos conocer el ID de la categoría y hacer algo asi. 

http://www.anieto2k.com/wp-json.php?cat=2

Fechas:

Mostrar las entradas de un año determinado es tan fácil como esto:

http://www.anieto2k.com/wp-json.php?m=2007

y para un mes determinado

http://www.anieto2k.com/wp-json.php?m=200702

y un día determinado

http://www.anieto2k.com/wp-json.php?m=20070203

Ultimas entradas:

Las últimas entradas son iguales que las obtenidas en los feeds. 

http://www.anieto2k.com/wp-json.php

aNieto2k

Actualizaciones: WordPress RC2 2.1.3 e iTunes 7.1.1

itunes.pngYa tenemos disponibles las Release Candidates 2 de WordPress 2.1.3 y 2.0.10, solucionando más problemas y bugs. Parece que en muchos sitios están recomendado su instalación inmediata, pero nosotros vamos a esperar a que salgan las versiones definitivas.

Y Apple ha sacado la actualización 7.1.1 para iTunes, que soluciona algunos problemas encontrados en la última versión, liberada hace apenas nada. Yo no he tenido ningún problema con la última versión, pero actualizaremos por si acaso.

5 nuevos themes

He estado un rato adaptando 4 plantillas que me han gustado de freecsstemplates.org y esta tarde las podré para descargar, aún me quedan unas cosillas por pulir pero en general están bastante avanzados.

Themes:

¿Os gusta alguno más?

aNieto2k

RC2 de WordPress 2.0.10 y 2.1.3

¿The code is poety? Más bien debería ser su lema “sacamos versiones con cuentagotas averiados” :P

Aunque bueno, en el tema de las release candidate es normal esto. Las nuevas RC están como siempre disponibles en el archivo. Los bugs arreglados según Ryan Boren en la lista de testers son:

Y han añadido algunos attribute_escape más:

Creo que con esto han solucionado buena parte de los bugs reportados estos días (y es que llevamos un ritmo que voy medio perdido) pero por si acaso, repito las palabras de Ryan:

Mark and I have been auditing the code and think we have found all places where we should attribute_escape, but we could use some more eyeballs.

Attributes that might contain user supplied content should always receive attribute_escape treatment before being output. This includes $pagenow and PHP_SELF. If you see any places where PHP_SELF or $pagenow are being output, check to make sure they are being properly escaped. These should rarely be output by WP core, and plugins and themes should probably avoid outputting them altogether.

Also, please give wpnonceays() a thorough review. This function has been the source of many bugs.

Que resumiendo mucho significa “hemos estado trabajando en ello” y “como siempre, los reportes son necesarios” ;) .

PD: Para actualizaciones rápidas desde la RC1 anterior, sustituid los ficheros:

  • wp-includes/link-template.php
  • wp-includes/functions.php
  • wp-includes/classes.php
  • Y posiblemente (aunque dicen que es para 2.1 y 2.2): xmlrpc.php

webdev, wordpress