Hallo Liebe Leser von You Big Blog.
WordPress-PageNavi ohne Plugin habe ich bereit beschrieben in den Artikeln: Erste Variante und zweite Variante .
Inzwichen habe ich noch ein lösung funktion gefunden, das Resultat sieht in meinem Blog unten.Anleitung PageNavi ohne Plugin Teil 3:

wordpress-tipps


functions.php offnen und folgende Code einfühgen:

 

function pagination($range = 3, $show_one_pager = true, $show_page_hint = false)
{
    global $wp_query;
    $num_of_pages = (int)$wp_query->max_num_pages;

    if(!is_single() && $num_of_pages > 1)
    {
        $current_page = get_query_var('paged') === 0 ? 1 : get_query_var('paged');
        $num_of_display_pages = ($range * 2) + 1;        

        $output = '<div id="pagination">';

        if($show_page_hint)
        {
            $output .= '<span>Seite ' . $current_page . ' von ' . $num_of_pages . '</span>';
        }
    
    if($current_page > 2 && $current_page > $range + 1 && $num_of_display_pages < $num_of_pages)
    {
      $output .= '<a href="' . get_pagenum_link(1) . '" title="Seite 1 - Neueste Artikel">«';
    }
    if($show_one_pager && $current_page > 1)
    {
      $output .= '<a href="' . get_pagenum_link($current_page - 1) . '" title="Seite ' . ($current_page - 1) . ' - Neuere Artikel">‹</a>';
    }

    for($i = 1; $i < = $num_of_pages; $i++)
    {
      if($i < $current_page + $range + 1 && $i > $current_page - $range - 1)
            {
        if($current_page === $i)
        {
          $output .= '<span class="current">' . $i . '</span>';
        }
        else
        {
          $output .= '<a href="' . get_pagenum_link($i) . '" title="Seite ' . $i . '" >' . $i . '</a>';
        }
            }
    }
    
    if($show_one_pager && $current_page < $num_of_pages)
    {
      $output .= '<a href="' . get_pagenum_link($current_page + 1) . '" title="Seite ' . ($current_page + 1) . ' - Ältere Artikel">›';
    }
    if($current_page < $num_of_pages - 1 && $current_page + $range < $num_of_pages && $num_of_display_pages < $num_of_pages)
    {
      $output .= '<a href="' . get_pagenum_link($num_of_pages) . '" title="Seite ' . $num_of_pages . ' - Älteste Artikel">»';
    }

    $output .= '</div>';

        return $output;
    }
}

 

 

Dazugehörigen CSS-Code des Designs PageNavi, je nach Theme sollt ihr individuell Anpassen.

Kurze Erklärung zu den jeweiligen Codezeilen:

Zeile 4:
Wir weisen $num_of_pages die Anzahl der Seiten zu.
Zeile 6:
Die Pagination nur anzeigen, wenn die aktuelle Seite keine “Single-Page„ ist und mehr als 1 Seite vorhanden ist.
Zeile 8:
Der Variable $current_page wird die aktuelle Seite zugewiesen. Dabei ist zu beachten, dass wenn die aktuelle Seite die Seite 1 ist, die Funktion get_query_var(‚paged‘) 0 zurückliefert.
Zeile 9:
$num_of_display_pages wird die Anzahl der anzuzeigenden Seitenlinks zugewiesen. Dabei gibt $range an, wie viele Seitenlinks links bzw. rechts nebst dem Seitenlink der aktuellen Seite (maximal) angezeigt werden.
Zeile 13 – 16:
Wenn die Variable $show_page_hint wahr ist (true), dann geben wir den Hinweis aus, dass der Leser sich gerade auf „Seite X von Y“ befindet. X ist dabei die aktuelle Seite und Y die Anzahl aller Seiten.
Zeile 18 – 21:
Es wird ein Seitenlink auf der erste Seite (auf der die neuesten Artikel eures Blogs gelistet sind) angezeigt, wenn folgende Bedingungen erfüllt sind:

die aktuelle Seite entspricht weder Seite 1 noch Seite 2
die aktuelle Seite ist größer als $range + 1
die Anzahl der anzuzeigenden Seitenlinks ist kleiner als die Gesamt-Seitenanzahl

Zeile 22 – 25:
Es wird ein Seitenlink auf die vorherige Seite der aktuellen Seite angezeigt, wenn folgende Bedingungen erfüllt sind:

$show_one_pager ist true
die aktuelle Seite ist nicht die erste Seite (Seite 1)

Zeile 27 – 40:
In einer for-Schleife durchlaufen wir alle Seiten. In Zeile 29 überprüfen wir dann, ob für die jeweilige Seite ($i) ein Seitenlink angezeigt wird. Dabei gilt die Bedingung, dass die Seite sich innerhalb der anzuzeigenden „Seitenrange“ ($range) befinden muss. Wenn das der Fall ist, dann geenrieren wir den dazugehörigen Seitenlink, außer wenn es sich um die aktuelle Seite handelt, da wir dann einfach nur ein -Element ausgeben.
Zeile 42 – 49:
Verhält sich analog zu dem Code aus Zeile 18 – 25:
Zeile 53:
Wir geben unsere generierte Ausgabe ($output) zurück.

Um die PageNavi in eurem WordPress-Blog anzuzeigen, müsst ihr am Ende eurer „WordPress-Loop“, die sich bei vielen Themes in der loop.php befindet (je nach Theme kann das aber abweichen), Folgendes einfügen:
Gode gehört ins (index.php) und (archive.php)

echo pagination(); je nach Theme sucht ihr Code Zeile 
< ?php endwhile; // end of the loop. ?>
< ?php wp_reset_query(); // reset the query ?> wp_reset_query(); mit echo pagination(); erzetzen

Weitere Beispiele findet im Blog
WordPress – nützliche Funktionen #4