Навигация без плагина. Почти )))
19.07.2007 @ Рубрики: WordPress
На днях занялся разгрузкой блога. Одно изменение уже на лицо – это кнопки в комментариях. Решил пока не писать об этом и отложить черновик до следующего раза.
Еще одно изменение касается постраничной навигации. Внизу страницы у меня есть ссылки (т.с. навигационные) [1][2][3] и т.д. Они и раньше там были. Они там были, чуть ли не с самого зарождения блога. Но только раньше там был плагин, а теперь его нет. Почти. Ну по правде сказать осталась лишь небольшой кусочек плагина. ))
Я просто взял немного его обрезал. Точнее вырезал не нужную мне часть, ту что отображается в админке, оставив самое главное. И вот это оставшееся я вставил в шаблон своей темы. Визуальный результат тот же самый. Однако теперь у меня на один плагином меньше.
Если говорить конкретнее, то вот что я вставил в index.php:
$before=’ ‘;
$after=’ ‘;
$prelabel=’«’;
$nxtlabel=’»’;$pages_to_show = 5;
$half_pages_to_show = round($pages_to_show/2);if (!is_single()) {
if (get_query_var(’what_to_show’) == ‘posts’) {
preg_match(’#FROM\s(.*)\sGROUP BY#siU’, $request, $matches);
$fromwhere = $matches[1];
$numposts = $wpdb->get_var(”SELECT COUNT(DISTINCT ID) FROM $fromwhere”);
$max_page = ceil($numposts /$posts_per_page);
} else {
$max_page = 999999;
}
if(empty($paged)) {
$paged = 1;
}
if($max_page > 1) {
echo “$before Страницы ($max_page): “;
if ($paged >= ($pages_to_show-1)) {
echo ‘<a xhref=”‘.get_pagenum_link().’” mce_href=”‘.get_pagenum_link().’” >« В начало</a> … ‘;
}
previous_posts_link($prelabel);
for($i = $paged - $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) {
if ($i >= 1 && $i <= $max_page) {
if($i == $paged) {
echo "[$i]";
} else {
echo '<a xhref="'.get_pagenum_link($i).'" mce_href="'.get_pagenum_link($i).'" >'.$i.'</a> ';
}}}
next_posts_link($nxtlabel, $max_page);
if (($paged+$half_pages_to_show) < ($max_page)) {
echo ' ... <a xhref="'.get_pagenum_link($max_page).'" mce_href="'.get_pagenum_link($max_page).'" >В конец »</a>';
}
echo "$after";
}}
?>
Я оставил лишь необходимые для работы настройки:
В $before=’ ‘ и $after=’ ‘ задаем тэги, которые будут обрамлять нашу строку (лучше сказать панель) навигации.
$prelabel=’laquo;’ – « В начало
$nxtlabel=’raquo;’ – В конец »
$pages_to_show = 5 – сколько страниц (номеров страниц) показывать.
На самом деле в этих переменных можно хоть смайлики задавать (за исключением $pages_to_show, здесь все таки число надо), главное чтоб выводилось красиво.
UPD: В связи с тем, что wordpress периодически коверкает код, я выложить рабочий код для скачивания.
Теперь вы можете его скачать.
Черно-белых комментариев: 28
Оставьте черный или белый комментарий :)
HTML: разрешено использование: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
20.07.2007 в 09:55
А зачем в блоге постраничная навигация? Чем не устраивают ссылки вперед-назад?
20.07.2007 в 10:12
Денис, ну понимаешь “на вкус и цвет…”. Кому-то нравится “Вперед-Назад”, кому-то - нет. Я среди вторых.
Я хочу чтобы пользователь мог идти по пронумерованным страницам, и знать сколько осталось до конца (ну это как пример). А вобще, мне это нравится еще и визуально. Вот переводишь шаблон и думаешь как же корректней написать “вперед” или “далее” или “след. стр.” и есть еще куча вариантов. Но они мне не нравятся и именно поэтому я нумерованный список страниц
20.07.2007 в 11:13
Понятно, спасибо
Я просто не могу представить ситуацию, где пользователю надо попасть, например, именно на 5 страницу
20.07.2007 в 11:33
:)
Кстати, очень удобно. Особенно если запомнить страницу, на которой находилась нужная информация. Элементарный пример - вот сейчас отвечаю на форуме. Помню в одном из своих постов затрагивал подобную тему. И помню, что это было на стр. 3. Иду и смотрю. Записей пока мало, поэтому можно помнить страницы.
20.07.2007 в 12:18
Это исключение только подтверждающее правило
P.S. Интересно, а есть плагин, который запоминает введенные личные данные при комментарии?
20.07.2007 в 12:41
Думаю да. Точнее не столько плагин, сколько одна из функций какого-нибудь другого плагина. Хотя реализация проста - надо просто внести все в Cookies.
20.07.2007 в 12:51
Все равно самому не охото заниматься реализацией.
20.07.2007 в 13:29
Вот тебе как пример blog.sribna.com. Здесь стоит плаг, который запоминает пользователей.
26.07.2007 в 07:52
у меня не работает. вставил куда нужно. Просто весь этот код вылазит текстом на странице.
26.07.2007 в 08:07
А
< ?php ... ?>не забыл? Хочешь давай мыло, я тебе сброшу код.
22.09.2007 в 13:54
2Delchyve: да я в этих пхп не шарю:) шаблон свой редактировал методом тыка.
Мыло я написал, к своему нику, когда на этот пост отвечал. Скиньте полностью код, если не трудно, чтобы я вставил его и все заработало:) Буду весьма признателен и если когда-нибудь заведу блог сео, веб, смо тематики, то вы первым окажетесь в блогроле:)
24.09.2007 в 08:46
Lis, отправил письмо. Лови
24.09.2007 в 09:12
До меня дошло как можно использовать подобный плагин. Он повышает скорость индексации сайта и количество страниц второго уровня проиндексированных в сапе
24.09.2007 в 09:34
Хм, а ведь это и правда так, судя по логике вещей. Как то в голову не приходило. Почему раньше не догадывались )).
24.09.2007 в 09:44
Видно просто такой задачи не стояло
А я сейчас составлю методичку по раскрутке блога
24.09.2007 в 10:00
Если честно, да. Хоят задача раскрутки до сих пор не стоит, т.к. в этом деле полный профан.
Склоняю голову. Как будет распространяться?
24.09.2007 в 10:55
Теоретическую часть выложу в блоге. Параллельно буду раскручивать свой блог и описывать живые результаты
Хотя до выполнения задачи минимум попасть в топ5000 русскоязычных блогов осталось совсем немного, надо уже другие цели ставить
24.09.2007 в 11:47
Спасибо. Вставил, но появляется проблема, выдает вот что:
Страницы (999999): 1 2 3 4 5 …В конец
Когда нажимаешь в конец ведет на страницу 999999 и соответственно Url not found
24.09.2007 в 12:00
Странно. То что я тебе скинул - это рабочий вариант кода. Пример работы здесь в блоге.
Ладно, в аську можешь стукнуть? - 25один-14семь-95семь
24.09.2007 в 12:55
да я аську не юзаю, ладно, значит не судьба. Просто точь такая же байда была, когда я пытался сделать страницы с помощью плагина, вот думал мож просто код проканает…не проканал. Наверное версия вордпресс старая. Но все равно, спасибо.
24.09.2007 в 13:23
хз, ВП должен быть тогда очень старый. Код работает в версиях начиная с 2.0.9 точно. Не думаю что в версиях раньше были серьезные различия. В новой линейке код тоже должен работать.
Если хочешь можешь прислать мне тему, которую ты используешь (только желательно тему, а не ссылку на скачивание). Мыло мое у тебя есть. С него код присылал.
24.09.2007 в 13:41
Тему юзаю от Блогингпро, вот эту, которая на их сайте также стоит:
http://www.bloggingpro.com/archives/2007/03/21/blogging-pros-theme-released/
Кардинально в ней ничего не менял, просто поубирал все лишнее. Кстати, у них на сайте также навигация не постраничная. Может быть это и косяк темы.
21.11.2007 в 18:53
Вот и у меня тоже самое
22.11.2007 в 12:47
Вот здесь поднял тему.
Определенно проблемы с плагином в новых версиях WP есть.
22.11.2007 в 13:23
Плагин обновился и подрос. Так что прошу всех на страницу разработчика. Там можно скачать последнюю версию
12.02.2008 в 00:51
как можно сделать навигацию не по количеству постов а по дням (”день вперёд” и “день назад”) ?
13.02.2008 в 09:04
untaboo, я подумаю. Если что получиться - с меня пост. )
13.02.2008 в 18:01
Delchyve очень буду благодарен! спасибо)!