为了防止一些访问者发现这些信息有用,我发布了我的工作实现。它需要一个小插件。
在这个实现中,永久链接将显示每月存档,但url仍将是“完整的”,即包括帖子标题,这样一来,1)如果我希望以后更改此模式,而不破坏永久链接,我就有更多的自由,2)我有访问的有意义的统计数据(我可以从日志中知道访问了哪些帖子)。
在管理页面中,我指定此permalinks结构:
/%year%/%monthnum%/%postname%
eg: http://example.com/myblog/2012/01/sample_post
但最终permalink将采用以下形式:
http://example.com/myblog/2012/01/sample_post#post-234
片段标识符由插件中的以下挂钩添加:
/* 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 );
我还在插件中添加了以下内容,因此permalinks尽管看起来像是单个帖子的url,但被解释为归档文件:
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\');
我的主题继承自标准
twenty-eleven
, 已在中向每个帖子发布“post NNN”id
content.php
:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
如果您正在使用其他主题,则需要添加或修改此主题。
请记住,要做到这一点,您的每月档案不应分页:您每月需要有最多的帖子数量,并在管理页面的“每页帖子”中设置该值。(我还调整了index.php
我的主题中的文件,以便首页显示较少的帖子)。