Рабочие будни

Архивы

Archive for the ‘wordpress’ Category

Оптимизация pagenavi

Понедельник, ноября 3, 2008

Прочитав пост уважаемого Жомарта (после увидев статью Ярослава Бирзул) и посмотрев функционал navi.php, решил внести свои 5ть копеек.

В итоге взял функцию пагинации из темы уважаемого www.acosmin.com и чуток доработал.

Получилось вот что:

function wp_pagenavi2() {
global $paged, $wp_query;
$pages_to_show = 5; //сколько ссылок делать по сторонам
$max_page = $wp_query->max_num_pages;
if($max_page>1){
if(empty($paged)) {
$paged = 1;
}
$prelabel  = '<strong>&amp;laquo;</strong>';
$nxtlabel = '<strong>&amp;raquo;</strong>';
$half_pages_to_show = round($pages_to_show/2);

if($max_page > 1) {
echo "$before <div class='Nav'><span>Стр. ($max_page): </span>";
if ($paged >= ($pages_to_show-1)) {
echo '<a href="'.get_pagenum_link().'">&amp;laquo; Первая</a> ... ';
}
previous_posts_link($prelabel);
for($i = $paged — $half_pages_to_show; $i  <= $paged + $half_pages_to_show; $i++) {
if ($i >= 1 &amp;&amp; $i <= $max_page) {
if($i == $paged) {
echo "<strong class='on'>$i</strong>";
} else {
echo ' <a href="'.get_pagenum_link($i).'">'.$i.'</a> ';
}
}
}
next_posts_link($nxtlabel, $max_page);
if (($paged+$half_pages_to_show) < ($max_page)) {
echo ' ... <a href="'.get_pagenum_link($max_page).'">Последняя &amp;raquo;</a>';
}
echo "<div class='NavEnd'></div></div> $after";
}
}
}

Вызывается оно просто:

<?php if(function_exists('wp_pagenavi2')) { wp_pagenavi2(); } ?>

Кода не намного больше, но есть некоторые полезные детали.

Отличия от navi.php: возможность перемещения на пред. и след. страницу.

Прячем SAPE от проверок

Четверг, октября 30, 2008

Много уже было написано по этому поводу. Не стал сильно углубляться в готовые варианты решения и написал свой код для устранения этого недостатка.

Работает только при условии наличия ЧПУ на сайте. Проверялось как на Drupal, так и на WordPress.

И так открываем sape.php

Находим строки

{

$this->_request_uri = $_SERVER['REQUEST_URI'];

}

Добавляем после них

$auri = explode("?", $this->_request_uri);

$this->_request_uri=preg_replace("(\/+)",'/', $auri[0]);

Всё! :)

Проверить на сколько верно оно работает можно тут

WordPress vs Drupal (заметка)

Пятница, сентября 5, 2008

Решил попробовать WordPress. До этого пользовался Drupal. Впечатление пока двоякое. Больше всего поразило то, что нет модуля Locale (позволяет показывать интерфейс сайта на языках отличных от английского.). Как удобно в Drupal с помощью него переводить любые фразы интерфейса. Это же гемор заниматься переводом каждого плагина и прочего. А может я его просто не нашел? Знатоки подскажите…

upd: Чуток поковырялся в API. Почему нельзя сделать фильтр на функцию «__»?

add_filter ('__', 'localize') — неотрабатывает