Утстановка WordPress 2.2

July 14th, 2007

Испытуемая версия WordPress 2.2

Скачайте wordpress с официального сайта а русификатор можно найти у меня. В архиве папка languages, поместите ее в папку wp-content и все. Существует альтернативный способ – руссифицированный wordpress с сайта maxsite.org, но я вам его не рекомендую. Зачем вносить правки в ядро, если есть более цивилизованный способ.

Для установки wordpress необходимо выполнить следующее:
Перед началом инсталляции скопируйте файл wp-config-sample.php как wp-config.php
ну и заполните в нем данные о доступе к вашей базе данных и всё.

Можно приступать к настройке.

Для интереса заглянул в БД на созданные таблицы:

  1. wp_categories // категории
  2. wp_comments // комментарии
  3. wp_link2cat // категории для ссылок
  4. wp_links // blogroll – обмен ссылками
  5. wp_options // это сохраняемые переменные/опции сайта
  6. wp_post2cat // привязка тегов
  7. wp_postmeta // какая-то мета-информация для страниц (не постов)
  8. wp_posts // здесь хранится контент
  9. wp_usermeta // любые данные любого пользователя, типа userid > key > value
  10. wp_users // информация о пользователях

Все ясно, ничего лишнего.

Закачал темы с wordpress.org
Путь для их сохранения /home/site.ru/www/wp-content/themes/
Взял для себя за основу одну из трех-колоночных тем.

Редактирую тему, все очень просто:
ковыряем header.php, footer.php, style.css, sidebar.php
ну вот получилось, то что надо.
Бросается в глаза множественное присутствие php кода в шаблонах,
многим это не понравится, но не мне. Для человека не
программирующего в php, код возможно покажется сложноватым, но тем не менее,
в наших руках оказался инструмент для гибкой настройки блога.

Создаю, категории, страницы, посты.
Категории, которые будут нашими тегами реализованы просто и изящно, в виде древовидной структуры любой вложенности.
У категории имеется заголовок (название) и короткая ссылка для обращения к ней.

Так смотрим опции:
Очень понравились опции Permalink, т.е. кроме того, что имеется возможность
воспользоваться готовыми сценариями разбора url можно еще и свой придумать
в рамках дозволенного.

Так, я не хочу, что бы адрес моих статей был типа site.ru/?p=123,

второй вариант site.ru/2007/07/13/sample-post/ уже лучше,

третий вариант site.ru/archives/123 тоже ничего, но я использую

четвертый – Custom:
Custom structure:/%category%/%postname%/
Optional Category base: /tags
Теперь обращение к моим статьям будет в таком виде
site.ru/sample-tag/sample-post
а чтобы не было конфликтов имен с категориями (тегами)
к ним обращением будет таким site.ru/tags/sample-tag
такой вариант вывода потребуется мне для сохранения работоспособности старых адресов.

BlogRoll – удобный инструмент для управления ссылками на вашем сайте.
Ping и TrackBack – Реализация интересной идеи пинга блогов между собой,
т.е. если в другом блоге появился комментарий к вашему посту, вы будете уведомлены об этом,
свое разрешение или не разрешение на эти действия вы даете при создании статьи.

Есть возможность подключать свой код (свои функции) для этого в папке вашей темы создайте файл functions.php
и сложите туда свои функции.

Структура контента такова, что мы имеем посты (posts) и страницы (pages)
которые между собой ничем не связаны,
а мне вот логичным представлялось принадлежность постов страницам.
Хотя после прочтения в документации раздела Pages
становится понятным, что это отдельный тип контента, который не будет меняться часто, для примера приводятся такие страницы как: Контакты, Обо мне, О сайте и т.д.

Но я буду использовать их несколько в другом качестве, а все потому,
что теперь передо мной стоит задача после переезда на Wordpress сохранить старые пути сайта.
В первую очередь для того, чтобы Яндекс с Гуглем на меня “не обиделись”.

На старой CMS имелась следующая ссылка /webmaster/standarty_i_programmirovanie.html
В данный момент у меня есть страница /webmaster/
и есть пост /standarty_i_programmirovanie
а если данному посту сопоставить категорию webmaster
получаем путь /webmaster/standarty_i_programmirovanie

любопытный факт – при создании короткой ссылки поста содержащей точку в имени он (wordpress) её похерил,
но тем не менее к посту он позволяет обращаться и с точкой и без
/webmaster/standarty_i_programmirovanie.html
/webmaster/standarty_i_programmirovaniehtml
т.е. для корректной выборки статьи по старому адресу
мне нужно назвать статью standarty_i_programmirovaniehtml (с окончанием html)

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

Для того чтобы понять как wordpress анализирует запрос адреса, я полез в wp-includes/classes.php
Итак wordpress при загрузке страницы формирует массив правил, а потом сравнивает строку запроса с правилами,
их можно посмотреть, разместив в index.php следующую строку: <pre><? print_r($wp_rewrite) ?></pre>
отсюда следут, что все страницы при запуске анализируются (т.е. загружаются целиком из базы) и в массиве $wp_rewrite['rules'] можно увидеть сформированные из них правила.

Данное обстоятельство привело меня к мысли, что создать плагин АЛЬЯСЫ (Псевдоимена) будет проблематично без вмешательства в ядро.
Кроме того факт того, что движок блога грузит в память ВСЕ страницы целиком, к какой из них вы бы не обращались, говорит о том что страницами лучше не пользоваться в массовом порядке, а лишь в единичном.
В моем случае страницы будут выполнять роль связующего элемента для сохранения старых путей сайта.
Используя макет page.php находящийся в папке темы я буду выводить список постов категория которых соответствует имени загруженной странице:

<!-- content -->
<? // получение категории по имени текущей страницы$cat_object = get_category_by_path($pagename); ?>
<ul>
<? // Вывод дочерних страниц текущей страницы
wp_list_pages("title_li=&child_of=".$post->ID); ?>
</ul>
<? // Цикл получения постов в соответсвующей категории
$categoryvariable=$cat_object->cat_ID; // assign the variable as current category
$query= 'cat=' . $categoryvariable. '&orderby=date&order=DESC'; // concatenate the query
query_posts($query); // run the query
// <!-- Start the Loop. -->
while (have_posts()) : the_post(); // start your Loop
?>
<div class="item entry" id="post-php<? the_ID(); ?>">
<h1><a href="<? the_permalink() ?>" rel="bookmark"><? the_title(); ?></a></h1>
<div class="date"><? the_time('d/m/Y H:i') ?></div>
<? the_excerpt(); ?>
<small class="metadata">Рубрики <span class="category"><? the_category(', ') ?> </span>
| <? edit_post_link('Изменить', '', ' | '); ?>
<? comments_popup_link('Комментарии (0)', ' Комментарий (1)', 'Комментарии (%)'); ?>
</small>
<!-- end item -->
</div>
<? endwhile; ?>
<!-- end content -->

на этом пожалуй пока все.

Следующим этапом я пороюсь во всем многообразии плагинов для wordpressa.


Комментирование закрыто.

 
О Сайте

Этот сайт я делал для себя и своих заказчиков, но затем решил описывать некоторые ньюансы своей работы и может быть это окажется кому-то полезным, а мне окажется полезным общение с единомышленниками веб-энтузиастами.

Администрирование
Ссылки:
пишите обменяемся.

Спамер, осторожно!