Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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;

#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.

share|improve this question

1 Answer 1

up vote 0 down vote accepted

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(); } ?>
share|improve this answer
    
i think it just about search filter :/ figoure out than. –  Fatih Toprak Oct 30 '12 at 7:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.