Постраничная навигация по сайту

12
ДП
На сайте с 23.11.2009
Offline
203
#11

В целом - да, но значение $page я все-таки рекомендую получать с проверкой isset($_GET['p']), а то на главнуюу вас человек зайдет - там не будет $_GET['p']

galaid
На сайте с 13.09.2011
Offline
16
#12

А будут ли такие ссылки, вида site.ru/?p=1, в данном случае индексироваться поисковыми системами?

ДП
На сайте с 23.11.2009
Offline
203
#13

Будут и получится дубль контента, так что на первую страницу можно ставить ссылку просто index.php

galaid
На сайте с 13.09.2011
Offline
16
#14
Дикий пионер:
Будут и получится дубль контента, так что на первую страницу можно ставить ссылку просто index.php

Но на таких страницах будет лишь краткое описание материала. Хотя это серьезно скажется на поисковой выдаче... 😕

Можно ли поисковым роботам запретить индексацию этих страниц?

ДП
На сайте с 23.11.2009
Offline
203
#15

Эм, у вас уже вопросы пошли не по технической реализации пейджинга, а по влиянию его на выдачу.

Для этого вам лучше отдельную тему создать, как мне кажется.

YL
На сайте с 09.07.2011
Offline
10
#16

и строку пагинации формировать надо динамически, а способом - <a href="/?p=1"><a href="/?p=2"> совсем неудобно (при изменении количества страниц каждый рах вручную все это переписывать...)

Вот примерчик простейшего формирования строки пагинации, дальше развивайте мысль:

//  следующие три переменные должны быть уже определены

// $page = текущая, выбранная страница
// $countPages = Количество всех страниц
// $maxCountNum = Количество номеров страниц для отображения в пагинации
// (пример: 2 3 4 5 6 7 8 - maxCountNum = 7 , настраиваете по своему желанию )
//

$bNum = $page - ( floor($maxCountNum/2) ); // первый номер странички для вывода в пагинации
$bNum = ($bNum<1)?1:$bNum; // Если он получился меньше единицы, значит первым
// номером будет циферка 1.
$eNum = $page + ( floor($maxCountNum/2)) ; // последний номер странички для вывода в пагинации
$eNum = ($eNum>$countPages)?$countPages:$eNum; // если он превысил количество всех страниц,
// то присвоим ему нужное значение

$pagi = ''; // будущая строка пагинации
for ($numPage=$bNum; $numPage<=$eNum; $numPage++) { // ну а в этом цикле сформируем
// строку пагинации полностью, перебрав допустимые номера страниц
// от bNum до eNum
if ($numPage == $page) $pagi.= " <b>{$numPage}</b> " ;
else $pagi.= " <a href='index.php?p={$numPage}'>{$numPage}</a> " ;
}

echo $pagi;
galaid
На сайте с 13.09.2011
Offline
16
#17
Дикий пионер:
Эм, у вас уже вопросы пошли не по технической реализации пейджинга, а по влиянию его на выдачу.
Для этого вам лучше отдельную тему создать, как мне кажется.

Ну да, немножко занесло в сторону :o

galaid добавил 10.10.2011 в 20:57

YuLink:
и строку пагинации формировать надо динамически, а способом - <a href="/?p=1"><a href="/?p=2"> совсем неудобно (при изменении количества страниц каждый рах вручную все это переписывать...)

Здесь я полностью согласен. Реализовать это на PHP не составит большого труда. А тот код я выложил, чтобы сразу было все наглядно видно.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий