Archivo de la etiqueta: wordpress

Obtener los resultados del buscador de WordPress por fecha

En la mayoría de páginas web que usan WordPress como gestor de contenidos, el funcionamiento por defecto del buscador les viene bien. Es decir,  una suerte de resultados ordenados por relevancia que a priori es más que suficiente. Sin embargo en sitios como Ofertas para Viajar o enbuscade.org que trabajan con un contenido con «fecha de caducidad» es más interesante por regla general que los resultados de búsqueda tengan como criterio su fecha de publicación más reciente. Si este es tu caso, es fácil de implementar esta modificación mediante un widget de texto con un código equivalente al del widget de búsqueda solo que con una nueva línea, la número 4:

1
2
3
4
5
<form id="searchform" action="http://almirot.com/" method="get">
<input id="s" name="s" type="text" value="Buscar" /> 
<input type="submit" value="Buscar" /> 
<input name="orderby" type="hidden" value="date" />
</form>

Realmente las búsquedas de wordpress tienen más opciones de las que podemos pensar inicialmente, y además de usar el criterio de ordenar por fecha de este ejemplo, podemos realizar otras búsquedas avanzadas como por autor, categoría o etiquetas entre otros.

Obtener todas las URLs de los contenidos de nuestro WordPress

De cara a una migración del contenido de un blog a otro, y por consiguiente de tener que incluir en el fichero .htaccess del primer blog un buen puñado de redirecciones 301, me he encontrado con la necesidad de obtener el listado de URLs de todas las entradas y páginas de una instalación de WordPress.

Seguramente habrá algún plugin u otro método más sencillo para hacerlo, pero al final he tirado de un sencillo script publicado en stackoverflow con alguna pequeña modificación:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );
 
$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;
 
header('Content-Type: text/plain; charset=utf-8');
$post_id = 0;
foreach($posts as $post) {
    switch ($post->post_type) {
        case 'revision':
        case 'nav_menu_item':
            break;
        case 'page':
            $permalink = get_page_link($post->ID);
            break;
        case 'post':
            $permalink = get_permalink($post->ID);
            break;
        case 'attachment':
            $permalink = get_attachment_link($post->ID);
            break;
        default:
            $permalink = get_post_permalink($post->ID);
            break;
    }
    $post_id++;
    echo "n{$post_id}t{$post->post_type}t{$permalink}t{$post->post_title}";
}
?>

De esta forma obtenemos una línea por cada post o página del blog que incluye número, tipo, URL y título del contenido. En caso de que solamente necesitamos las URLs deberemos modificar la línea 29 del anterior código por la siguiente:

    echo "n{$permalink}";

Este código debemos guardarlo como fichero php en la carpeta wp-content y a continuación ejecutarlo vía web. En el caso de este blog, si tuviera el script público, se accedería desde http://almirot.com/wp-content/generar_urls.php

Bye bye Movable Type, welcome WordPress

Nota: post migrado del antiguo blog de prakanstudios.com
Comer en TenerifeCuando el mundo de los blogs se reparte entre los que son de WordPress y los que son de Blogger, en prakanstudios todavía se mantienen un par de páginas con una vieja versión de Movable Type, generando problemas de todo tipo.

De momento Comer en Tenerife estrena por fin gestor de contenidos y en los próximos dos meses la implementación de WordPress será completa en los blogs de prakan.