自定义PRESER_POST_LINK输出

时间:2013-10-13 作者:jay

我正在尝试自定义上一个帖子链接的输出。我想显示前一篇文章的两个标题(带链接),一个应该是自定义文本,另一个应该是文章标题,例如:

Read Previous
This is Post tile.
他们都应该链接到以前的帖子

我正在尝试以下代码,但它将两个标题都显示为“Read Previous”。

<?php previous_post_link(\'

    <div class="prev-post">
        <span class="title1">
            <h5>%link</h5>
        </span>

        <span class="title2">
            <h5>%link</h5>
        </span>
    </div>

    \', __(\'Read Previous\', \'domain\')

    ); ?>

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

我只想过滤previous_post_linknext_post_link. 这样,您的模板保持干净,您可以将额外的逻辑移动到functions.php.

示例,未测试:

add_filter( \'previous_post_link\', \'filter_single_post_pagination\', 10, 4 );
add_filter( \'next_post_link\',     \'filter_single_post_pagination\', 10, 4 );
function filter_single_post_pagination( $output, $format, $link, $post )
{
    $title = get_the_title( $post );
    $url   = get_permalink( $post->ID );
    $text  = \'Read previous\';
    $class = \'prev-post\';
    $rel   = \'prev\';

    if ( \'next_post_link\' === current_filter() )
    {
        $text  = \'Read next\';
        $class = \'next-post\';
        $rel   = \'next\';
    }
    return "<div class=\'$class\'>
            <div class=\'title1\'>
                <h5><a href=\'$url\' rel=\'$rel\'>$text</a></h5>
            </div>
            <div class=\'title2\'>
                <h5><a href=\'$url\' rel=\'$rel\'>$title</a></h5>
            </div>
        </div>";
}

SO网友:s_ha_dum

当然是一样的。为什么你会认为相同的占位符--%link-- 将被不同的字符串替换?你只提供了一个?

这个previous_posts_link() 函数并不意味着要使用多个占位符。你将无法以你正在尝试的方式来完成这项任务。

最简单的方法是在字符串中传递帖子标题:

previous_post_link(\'
  <div class="prev-post">
      <span class="title1">
          <h5>%link</h5>
      </span>
      <span class="title2">
          <h5>\'.get_the_title().\'</h5>
      </span>
  </div>\', 
  __(\'Read Previous\', \'domain\')
);
事实上,I don\'t see a filter 这样你就可以用其他方式来做了。

结束

相关推荐

WordPress不显示wp-Content/Themes文件夹中的主题

我会尽我所能解释这一点,但至少可以说这很奇怪。因此,两个默认主题(210和2111)出现在wp admin的外观>主题选项卡下。但是,如果我向wp内容/主题添加一个新主题(即使只是一个空文件夹),则除了当前使用的主题之外,所有主题都无法显示在“外观”>“主题”选项卡上。有人有什么想法吗?--这是在LAMP服务器上(Ubuntu 12.04)。