Wsparcie » Wtyczki » rozbicie funkcji paginacji z jednej na dwie

  • Rozwiązano oliver87

    (@oliver87)


    Witam serdecznie.

    Wprowadzam małe zmiany pod kątem SEO.

    Chciałem nadać rel=”prev’ oraz rel=”next” dla kolejnych stron paginacji.

    Udało mi się to zrobić dla buttonów „Poprzednia” ’ „Następna”, „Pierwsza” oraz dla „Ostatnia”.

    Sęk w tym, żę strony paginacji które wyświetlają się w liczbach są ujęte w jednej funkcji

    { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
     { echo ($paged == $i)? "<li class='current'><span class='currenttext'>".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class='inactive'>".$i."</a></li>";

    Analogicznie nie mogę dodać tutaj atrybutu ponieważ każda ze stron paginacji wyświetlana jako liczbą będzie miała tylko jeden możliwi atrybut rel bez zróżnicowania na to czy jest to strona kolejna czy też poprzedzająca.

    Co nieco modyfikowałem składnię zważając aby w poszczególnej lini znajdowało się ($i >= $paged+$range+1 || lub ($i >= $paged+$range-1 || lecz i tak wyskakuje mi błąd syntaxa. Atrybuty rel oraz next wiem jak osadzić. Nie mogę rozbić jedynie funcji na dwie osobne.

    Z góry dziękuję za Waszą pomoc w temacie.

    Dla pewności osadzam pełen kod mojej paginacji

    function pagination($pages = '', $range = 3)
    { $showitems = ($range * 3)+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'><ul>";
     if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><a rel='prev' href='".get_pagenum_link(1)."'>&laquo; Pierwsza</a></li>";
     if($paged > 1 && $showitems < $pages) echo "<li><a rel='prev' href='".get_pagenum_link($paged - 1)."' class='inactive'>&lsaquo; Poprzednia</a></li>";
     for ($i=1; $i <= $pages; $i++)
     { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
     { echo ($paged == $i)? "<li class='current'><span class='currenttext'>".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class='inactive'>".$i."</a></li>";
     } } if ($paged < $pages && $showitems < $pages) echo "<li><a rel='next' href='".get_pagenum_link($paged + 1)."' class='inactive'>Następna &rsaquo;</a></li>";
     if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a rel='next' href='".get_pagenum_link($pages)."' class='inactive'>Ostatnia &raquo;</a>";
     echo "</ul></div>"; }}
Viewing 2 replies - 1 through 2 (of 2 total)
  • Moim zdaniem tylko niepotrzebnie sobie utrudniasz. W WP jest fajna funkcja do numerycznej paginacji, a te tagi rel, które chcesz dodać nie wiele wpłyną na SEO. WP automatycznie dodaje je na stronie wpisu w sekcji head. Ja to bym wolał, żeby w wynikach wyszukiwarek nie było w ogóle stron paginacji.

    Ale dobra, mniejsza o to 😉

    Zastąp sobie link w pętli for tym:

    echo ($paged == $i) ? "<li class='current'><span class='currenttext'>".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class='inactive'" . ((($i+1) > $paged) ? " rel='prev'" : '') . ((($i-1) < $paged) ? " rel='next'" : '') . ">".$i."</a></li>"

    Thread Starter oliver87

    (@oliver87)

    Super, bardzo dziękuję za odpowiedź.

    Zaraz to przetestuje.

    W międzyczasie może Ty masz jakieś pytanie, w których ja mógłbym Tobie pomóc? Zaznaczam, że nie jestem programistą także składnia php odpada, reszta ok 🙂

Viewing 2 replies - 1 through 2 (of 2 total)
  • Temat ‘rozbicie funkcji paginacji z jednej na dwie’ jest zamknięty na nowe odpowiedzi.