pagination hook doesn’t work with search results

I use my custom Pagination function on my web site;

#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 );
        };

Also i use search by title custom hook;

Read More
#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 );

But whenever you call search results page ;

For example “wordpress tema(search results for wordpress tema) the pagination hook doesn’t work. Please check the link also you can find some functions on SE here, for search results page .

I think problem is about my second hook:

What is wrong with this ? What should we do? Thanks any help.

Related posts

Leave a Reply

1 comment

  1. I think your problem with pagination. Use this code and 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)."'>&laquo;</a>";
             if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</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)."">&rsaquo;</a>";
             if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
             echo "</div>n";
         }
    }
    ?>
    

    And 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;}
    

    Usage ()

    <?php if (function_exists("pagination")) { pagination(); } ?>