我有以下问题。当我点击相同类别的上一个/下一个按钮时,遗憾的是我按时间顺序收到上一个/下一个帖子,而不是相同类别的上一个/下一个帖子。
以下是代码:
< div id="previous_post">
< ?php previous_post_link( '%link', __( '<span class="prev"><< Preivous Post</span>', 'esquire' ) ); ? >
< /div>
< div id="next_post"> < ?php next_post_link( '%link', __( '<span class="next">Next Post >></span>', 'esquire' ) ); ? >
< /div>
我试图用这篇文章解决我的问题http://codex.wordpress.org/Function_Reference/next_post_link 但是我做错了。
请问任何建议?
答案 0 :(得分:1)
例如
previous_post_link( '%link', __( '<span class="prev"><< Preivous Post</span>', TRUE, 'esquire' ) );
我不想每次都指定每个类别。我希望自动完成此操作。例如,当它显示来自类别机器的帖子并且您打开以阅读第一篇帖子时,当您点击下一篇文章时,您必须看到同一类别的下一篇文章而不是下一篇文章。如果该类别是食品,那么同一类别的下一篇文章。
我很清楚,或者我让你更困惑?
答案 1 :(得分:1)
从父主题复制single.php页面并将其粘贴到Child-theme的目录中。从child-theme目录打开single.php,并在文件末尾添加以下代码[在get_footer()之前; ]
<?php
$post_id = $post->ID; // Get current post ID
$cat = get_the_category();
$current_cat_id = $cat[0]->cat_ID; // Get current Category ID
$args = array('category'=>$current_cat_id,'orderby'=>'post_date','order'=> 'DESC');
$posts = get_posts($args);
// Get IDs of posts retrieved by get_posts function
$ids = array();
foreach ($posts as $thepost) {
$ids[] = $thepost->ID;
}
// Get and Echo the Previous and Next post link within same Category
$index = array_search($post->ID, $ids);
$prev_post = $ids[$index-1];
$next_post = $ids[$index+1];
?>
<?php if (!empty($prev_post)){ ?> <a class="previous-post" rel="prev" href="<?php echo get_permalink($prev_post) ?>"> <span class="meta-icon"><i class="fa fa-angle-left fa-lg"></i></span> Previous</a> <?php } ?>
<?php if (!empty($next_post)){ ?> <a class="next-post" rel="next" href="<?php echo get_permalink($next_post) ?>">Next <span class="meta-icon"><i class="fa fa-angle-right fa-lg"></i></span> </a> <?php } ?>
添加此代码后,将以下代码粘贴到您的子主题的Style.css中以设置链接的样式:
a.previous-post, a.next-post {
color: #fff;
background-color: #4498e7;
text-align: center;
height: 34px;
line-height: 34px;
font-size: 14px;
border: 1px solid;
padding: 0 20px;
margin-bottom: 30px;
text-transform: uppercase;
border-radius: 4px;
font-weight: bold;
}
a.previous-post:hover, a.next-post:hover {
color: #4498e7;
background-color: #fff;
}
a.previous-post {
float: left !important;
}
a.next-post {
float: right !important;
}
要在操作中查看这些链接,请访问我的网站:www.techtutsonline.com
让我知道结果:)
答案 2 :(得分:0)
这是最终/正确的语法
previous_post_link( '%link', __( '<span class="prev"><< Previous Post</span>', 'esquire' ), TRUE );
谢谢!