要将帖子导航限制为同一作者和类别,请找到链接模板。/wp includes/folder中的php文件,并使用您最喜欢的文本编辑器(Notepad++for me)进行编辑。在此文件中,您将更改四个函数。在链接模板中找到以下行。php文件:
function previous_post_link($format=\'« %link\', $link=\'%title\', $in_same_cat = false, $excluded_categories = \'\') {
adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true);
}
将其更改为以下内容:
function previous_post_link($format=\'« %link\', $link=\'%title\', $in_same_cat = false, $excluded_categories = \'\', $is_author = false) {
adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true, $is_author);
}
在前面的代码行下面,您应该可以找到以下内容:
function next_post_link($format=\'%link »\', $link=\'%title\', $in_same_cat = false, $excluded_categories = \'\') {
adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false);
}
将其更改为以下内容:
function next_post_link($format=\'%link »\', $link=\'%title\', $in_same_cat = false, $excluded_categories = \'\',$is_author = false) {
adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false, $is_author);
}
这些变化很小。您应该注意到,所做的唯一更改是将$is\\u author=false添加到函数参数中,并将$is\\u author添加到对相邻的\\u post\\u链接调用的调用中。
在下一个函数中,您将添加另一个参数,并调整下一篇/上一篇文章中的选择查询。找到以下类似以下内容的行:
function get_adjacent_post($in_same_cat = false, $excluded_categories = \'\', $previous = true) {
...
}
这个区块相当长,所以我只讨论正在更改的内容。在此行中添加与之前相同的参数($is\\u author=false):
function get_adjacent_post($in_same_cat = false, $excluded_categories = \'\', $previous = true, $is_author = false) {
...
}
接下来,在同一个函数中找到$where变量,如下所示(函数中大约有50行)。
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = \'publish\' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );
我们接下来要做的是修改这个变量,使其仅在$is\\u author为true时保留author。要进行此测试,请使用$is\\u author的布尔值,并在$where变量的末尾添加一点额外的标记。
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = \'publish\' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );
if($is_author)
$where .= " AND p.post_author=\'".$post->post_author."\'";
链接模板中的最终更改。php文件定位以下函数:
function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = \'\', $previous = true) {
if ( $previous && is_attachment() )
$post = & get_post($GLOBALS[\'post\']->post_parent);
else
$post = get_adjacent_post($in_same_cat, $excluded_categories, $previous);
由$is\\u author在相邻的\\u post\\u链接函数中更改此函数,并将其添加到get\\u相邻的\\u post调用中:
function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = \'\', $previous = true, $is_author = false) {
if ( $previous && is_attachment() )
$post = & get_post($GLOBALS[\'post\']->post_parent);
else
$post = get_adjacent_post($in_same_cat, $excluded_categories, $previous, $is_author);
现在,您可以在主题文件中使用这个新选项了。要“激活”保留作者功能,请在单曲中使用类似的内容。php:
<?php previous_post_link( \'%link\', \'\' . _x( \'←\', \'Previous post link\', \'twentyten\' ) . \' %title\',\'true\',\'\',\'true\' ); ?>
<?php next_post_link( \'%link\', \'%title \' . _x( \'→\', \'Next post link\', \'twentyten\' ) . \'\',\'true\',\'\',\'true\' ); ?>
将最后一个值设置为“true”将激活该链接的“保留作者”功能。这将确保链接位于同一作者以及同一日期内。