假设我有一个每月只有几篇帖子的博客,并且没有评论,我不想在单个帖子页面中显示帖子,但总是“在上下文中”(比如说,与当月或一周内的帖子一起显示)。为了实现这一点,我需要将permalinks与片段标识符(#)一起使用。我想知道这是否得到支持,或者是否有人可以向我指出一些资源或讨论。
已编辑:我在自己的回答中公布了我的实施细节。
假设我有一个每月只有几篇帖子的博客,并且没有评论,我不想在单个帖子页面中显示帖子,但总是“在上下文中”(比如说,与当月或一周内的帖子一起显示)。为了实现这一点,我需要将permalinks与片段标识符(#)一起使用。我想知道这是否得到支持,或者是否有人可以向我指出一些资源或讨论。
已编辑:我在自己的回答中公布了我的实施细节。
有两个名为\'pre_post_link\'
和\'post_link\'
. 他们的第一个论点——你可以改变——是permalink。所以…
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;
}
…将更改输出。在你的循环中,你可能会使用类似于…
<li id="post-<?php the_ID(); ?>">
然后,您的永久链接可以指向您选择的存档页plus#post-$post->ID
. 例如:http://example.com/2012/04/#post-42
只需打开主题文件并从标题中删除a标记。
示例:在索引中。php文件,如果您有:
<h2>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a>
</h2>
它将成为:<h2 class="entry-title"><?php the_title(); ?></h2>
为了防止一些访问者发现这些信息有用,我发布了我的工作实现。它需要一个小插件。
在这个实现中,永久链接将显示每月存档,但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”idcontent.php
: <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
如果您正在使用其他主题,则需要添加或修改此主题。请记住,要做到这一点,您的每月档案不应分页:您每月需要有最多的帖子数量,并在管理页面的“每页帖子”中设置该值。(我还调整了index.php
我的主题中的文件,以便首页显示较少的帖子)。
我的网站上有一个页面,上面有客户推荐信。每篇推荐信都是一篇自定义帖子。我想任意订购推荐信。最好的方法是什么?