我使用我的自定义Pagination function 在我的网站上;
#Pagination
function pagination($prev = \'«\', $next = \'»\') {
global $wp_query, $wp_rewrite;
$wp_query->query_vars[\'paged\'] > 1 ? $current = $wp_query->query_vars[\'paged\'] : $current = 1;
$pagination = array(
\'base\' => @add_query_arg(\'paged\',\'%#%\'),
\'format\' => \'\',
\'total\' => $wp_query->max_num_pages,
\'current\' => $current,
\'prev_text\' => __($prev),
\'next_text\' => __($next),
\'type\' => \'plain\'
);
if( $wp_rewrite->using_permalinks() )
$pagination[\'base\'] = user_trailingslashit( trailingslashit( remove_query_arg( \'s\', get_pagenum_link( 1 ) ) ) . \'sayfa/%#%/\', \'paged\' );
if( !empty($wp_query->query_vars[\'s\']) )
$pagination[\'add_args\'] = array( \'s\' => get_query_var( \'s\' ) );
echo paginate_links( $pagination );
};
我还使用
search by title custom hook;
#Search Just in Title.
function __search_by_title_only( $search, &$wp_query ) {
global $wpdb;
if ( empty( $search ) )
return $search; // skip processing - no search term in query
$q = $wp_query->query_vars;
$n = ! empty( $q[\'exact\'] ) ? \'\' : \'%\';
$search =
$searchand = \'\';
foreach ( (array) $q[\'search_terms\'] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb->posts.post_title LIKE \'{$n}{$term}{$n}\')";
$searchand = \' AND \';
}
if ( ! empty( $search ) ) {
$search = " AND ({$search}) ";
if ( ! is_user_logged_in() )
$search .= " AND ($wpdb->posts.post_password = \'\') ";
}
return $search;
}
add_filter( \'posts_search\', \'__search_by_title_only\', 500, 2 );
但无论何时你打电话
search results page ;
例如“wordpress tema“(wordpress tema搜索结果)分页挂钩不起作用。请检查链接,也可以在SE上找到一些函数here, 用于搜索结果页面。
我认为问题在于我的第二个钩子:
这有什么问题吗?What should we do? 谢谢你的帮助。
最合适的回答,由SO网友:Serkan Algur 整理而成
我认为你的分页问题。使用此代码和css。
<?php
function pagination($pages = \'\', $range = 4)
{
$showitems = ($range * 2)+1;
global $paged;
if(empty($paged)) $paged = 1;
if($pages == \'\')
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}
if(1 != $pages)
{
echo "<div class=\\"pagination clearfix\\">";
if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href=\'".get_pagenum_link(1)."\'>«</a>";
if($paged > 1 && $showitems < $pages) echo "<a href=\'".get_pagenum_link($paged - 1)."\'>‹</a>";
for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? "<span class=\\"current\\">".$i."</span>":"<a href=\'".get_pagenum_link($i)."\' class=\\"inactive\\">".$i."</a>";
}
}
if ($paged < $pages && $showitems < $pages) echo "<a href=\\"".get_pagenum_link($paged + 1)."\\">›</a>";
if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href=\'".get_pagenum_link($pages)."\'>»</a>";
echo "</div>\\n";
}
}
?>
和CSS
.pagination{font-family:Arial, Helvetica, sans-serif;margin-bottom:20px;}
.pagination a,
.pagination span{line-height:30px;height:30px;width:30px;text-align:center;margin-right:5px;display:block;float:left;background:#FFF;color:#666;border-bottom:1px solid #cdcdcd;border-right:1px solid #cdcdcd;}
.pagination a:hover,
.pagination span.current{text-decoration:none;color:#FFF;background:#333;}
用法()
<?php if (function_exists("pagination")) { pagination(); } ?>