¿Deben los enlaces permanentes siempre apuntar a páginas de una sola publicación?

2

Supongamos que tengo un blog con pocas publicaciones por mes y sin comentarios, y no quiero mostrar publicaciones en páginas de una sola publicación, sino siempre "en contexto" (por ejemplo, junto con las publicaciones en su mes - o tal vez una semana?). Para lograr esto, necesitaría usar enlaces permanentes con identificadores de fragmentos (#), entre otras cosas. Me pregunto si esto es compatible o si alguien puede indicarme algún recurso o discusión.

Editado : publiqué en mi propia respuesta los detalles de mi implementación.

    
pregunta leonbloy 15.02.2012 - 12:26

3 respuestas

4

Hay dos ganchos llamados 'pre_post_link' y 'post_link' . Su primer argumento, que puede cambiar, es el enlace permanente. Así que ...

add_filter( 'pre_post_link', 'wpse_42406_change_permalink', 10, 2 );

function wpse_42406_change_permalink( $permalink, $post )
{
    // change the permalink, let it point to an archive etc.
    return $permalink;
}

... cambiará la salida.

En tu bucle probablemente uses algo como ...

<li id="post-<?php the_ID(); ?>">

Tu permalink podría entonces apuntar a la página de archivo de tu elección más #post-$post->ID . Por ejemplo:

http://example.com/2012/04/#post-42
    
respondido por el fuxia 15.02.2012 - 13:09
0

Simplemente abre tus archivos de temas y elimina las etiquetas del título.

Ejemplo: En tu archivo index.php si tuvieras:

<h2>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
    <?php the_title(); ?></a>
</h2>

se convertiría en:

<h2 class="entry-title"><?php the_title(); ?></h2>
    
respondido por el Jeremy Jared 15.02.2012 - 13:11
0

En caso de que algún visitante encuentre útil esta información, publico mi implementación de trabajo. Requiere un pequeño plugin.

En esta implementación, los enlaces permanentes mostrarán el archivo mensual, pero la URL seguirá siendo "completa", es decir, incluir el título de la publicación. De esta manera, 1) Tengo más libertad si deseo cambiar este esquema más adelante. , sin romper los enlaces permanentes, y 2) Tengo estadísticas significativas para mis visitas (puedo saber qué publicaciones individuales se han visitado desde mis registros).

En la página de administración especifico esta estructura de enlaces permanentes:

/%year%/%monthnum%/%postname%  
eg: http://example.com/myblog/2012/01/sample_post

Pero el enlace permanente final será de la forma:

http://example.com/myblog/2012/01/sample_post#post-234

El identificador del fragmento se agrega con el siguiente enlace en el complemento:

/* adds hash */
function hjg_change_permalink( $permalink, $post ) {
    //if(strpos($permalink,'#')) return $permalink;
    return $permalink . "#post-" . $post->ID;   
}

add_filter( 'post_link', 'hjg_change_permalink', 100, 2 );

También coloqué lo siguiente en el complemento, de modo que los enlaces permanentes, a pesar de verse como URL de publicaciones individuales, se interpretan como archivos:

function hjg_parse_request( $wp ) {
   if(! isset($wp->query_vars)) return;
   if(! isset($wp->query_vars['year'])) return;
   $wp->query_vars['name']=''; // remove post name
}

add_action( 'parse_request', 'hjg_parse_request');

Mi tema se hereda del estándar twenty-eleven , que ya anuncia una identificación "post-NNN" en cada publicación, en content.php :

   <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

Si está utilizando otro tema, deberá agregarlo o adaptarlo.

Recuerde que, para que esto funcione, sus archivos mensuales no deben ser paginados: debe tener un número máximo de publicaciones por mes y establecer ese valor en las "publicaciones por página" en la página de administración. (También modifiqué el archivo index.php en mi tema para que la página de inicio muestre un número menor de publicaciones).

    
respondido por el leonbloy 22.02.2012 - 17:08

Lea otras preguntas en las etiquetas