2

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.

1 Answer 1

0

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(); } ?>
1
  • i think it just about search filter :/ figoure out than. Commented Oct 30, 2012 at 7:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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