Использование функции Bloginfo в WordPress

С помощью функции bloginfo можно указать путь к элементам оформления рабочей темы WordPress. Например, к изображениям, находящимся в папке /image. Тогда путь к этой папке будет таким:

<?php bloginfo( 'stylesheet_directory' ); ?>/image

Для чего это нужно? Чтобы вручную не писать длинные пути к теме или при частом смене тем (дизайна сайта).

Полный список свойств функции bloginfo:

name = название блога
description = описание блога
admin_email = электропочта админа
url = урл блога
wpurl = урл папки, куда установлен Worpressstylesheet_directory = путь к рабочей теме
stylesheet_url = путь к файлу style.css рабочей темы
template_directory = путь к рабочей теме
template_url = путь к рабочей теме

atom_url
rss2_url
rss_url
pingback_url
rdf_url

comments_atom_url
comments_rss2_url

charset
html_type
language
text_direction
version

Хлебные крошки WordPress

Хлебные крошки (англ. bread crumb) - это дополнительное меню навигации, помогающее пользователю видеть иерархию страницы, на которой он оказался, в общей структуре сайта. Для Worpress пользователь будет видеть все родительские категории любой страницы сайта. Пример рабочего меню "хлебных крошек" видно на этой странице над заголовком статьи.

Для реализации меню "хлебных крошек" потребуется добавить следующий код в конец файла functions.php, который находится в корне рабочей темы WordPress (не перепутайте с одноименным файлом в папке wp-includes):

/* Функция хлебных крошек */
function dimox_breadcrumbs() {

$showOnHome = 0; // 1 - показывать "хлебные крошки" на главной странице, 0 - не показывать
$delimiter = '>'; // разделить между "крошками"
$home = 'Главная'; // текст ссылка "Главная"
$showCurrent = 0; // 1 - показывать название текущей статьи/страницы, 0 - не показывать
$before = '<span class="current">'; // тег перед текущей "крошкой"
$after = '</span>'; // тег после текущей "крошки"

global $post;
$homeLink = get_bloginfo('url');

if (is_home() || is_front_page()) {

if ($showOnHome == 1) echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a></div>';

} else {

echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';

if ( is_category() ) {
$thisCat = get_category(get_query_var('cat'), false);
if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' ');
} elseif ( is_search() ) {
echo $before . 'Результаты поиска по запросу "' . get_search_query() . '"' . $after;

} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;

} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;

} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;

} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>';
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
$cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
if ($showCurrent == 0) $cats = preg_replace("#^(.+)\s$delimiter\s$#", "$1", $cats);
echo $cats;
if ($showCurrent == 1) echo $before . get_the_title() . $after;
}

} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;

} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>';
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;

} elseif ( is_page() && !$post->post_parent ) {
if ($showCurrent == 1) echo $before . get_the_title() . $after;

} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++) {
echo $breadcrumbs[$i];
if ($i != count($breadcrumbs)-1) echo ' ' . $delimiter . ' ';
}
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after;

} elseif ( is_tag() ) {
echo $before . 'Записи с тегом "' . single_tag_title('', false) . '"' . $after;

} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Статьи автора ' . $userdata->display_name . $after;

} elseif ( is_404() ) {
echo $before . 'Error 404' . $after;
}

if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}

echo '</div>';

}
} // end dimox_breadcrumbs()

Эта функция разработана автором блога dimox.name, за что ему громаднейший респект. В функцию "хлебных крошек" добавлена небольшая корректировка, чтобы скрывать название категории, в которой находится пользователь (название категории будет показываться для статей).

Установка Google Analitics в WordPress для просмотра статистики посещаемости сайта

  1. Завести учетку Google Analitics.
  2. Добавить на все страницы сайта код трекера Google Analitics. Пример кода:
    <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-36301201-1']);
    _gaq.push(['_trackPageview']);
    (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
    </script>

    Обычно код добавляют в шапку сайта или подвал (файлы header.php или footer.php, находящиеся в корне рабочей темы Worpress).

  3. Подождать немного и наслаждаться красивыми графиками статистики сайта.

Альтернативный вариант - установить готовый плагин "Google Analytics for WordPress". Но он у меня что-то не пошел.

Поисковая оптимизация сайта на WordPress, добавление meta-тегов Desription и Keywords (All in One SEO Pack)

По умолчанию движок WordPress не позволяет добавлять к страницам meta-теги Desription и Keywords, которые необходимы для оптимизации сайта под поисковые системы.

Для добавления вышеупомянутых тегов используется плагин All in One SEO Pack.
Скачать All in One SEO Pack, версия 1.6.15.2.

Установка плагина стандартная: распаковать, залить в папку plugins рабочей темы, активировать через админку. После установки для каждой статьи станут доступными поля: meta keywords, meta desription, которые могут заполняться как в автоматическом, так и в ручном режиме.

Страница плагина All in One SEO Pack на официальном сайте WordPress.

Изменение языка (локализация) WordPress и редактирование служебных фраз

Язык движка WordPress можно изменить самостоятельно. Зачем это делать? Например, заказчик захочет видеть все надписи WordPress на украинском языке или любом другом. Также зачастую возникает необходимость подправить текст определенных служебных надписей. Например, заменить фразу "Архив рубрики" на "Список статей".

Языковой пакет WordPress размещен в папке /languages/ рабочей темы. В этой папке нас интересует один файл с расширением PO: ru_RU.po (для русского движка WordPress).

Открываем файл ru_RU.po с помощью программы POedit и редактируем необходимые переменные.

программа POedit

После редактирования жмакаем кнопу "Сохранить" и заливаем файлы с расширением .po и .mo на сайт. Файл с расширением .mo обновляется автоматически при сохранении.

Вывод списка рубрик (категорий), входящие в родительскую, с помощью функции get_categories в WordPress

Исходные данные: движок WordPress.

Задача: сделать для родительской рубрики (категории) подменю со списком рубрик, входящих в нее.

Используемый метод  - функция get_categories.

В файл category.php для рабочей темы вставляем следующий код:

<?php
$args=array(
'orderby' => 'name',
'order' => 'ASC',
'parent' => get_query_var( 'cat' )
);
$categories=get_categories($args);
foreach($categories as $category) {
if ($category->category_parent != 0) {
echo '<a href="' . get_category_link( $category->term_id ) . '" ' . '>' . $category->name.'</a> ';
}
}
?>

С помощью оператора IF убираем вывод названия родительской рубрики.

Пример работы функции (ссылки под заголовком).
Подробное описание функции get_categories

Установка WordPress

wordpress WordPress на сегодняшний день самый популярный движок для управления контентом простых сайтов (блогов). Ниже приведена пошаговая инструкция по развертыванию WordPress на сайте.

  1. Скачать дистрибутив.
    WordPress 3.4.2, язык русский.
    Также смотрите последнюю версию WordPress на официальном сайте: http://ru.wordpress.org/
  2. Распаковать архив. Появится папка "wordpress". Залить по ftp содержимое этой папки в корень сайта.
  3. Переименовать файл с конфигурацией из wp-config-sample.php в wp-config.php.
  4. Создать базу данных и пользователя. Прописать эти параметры в конфиг (DB_NAME, DB_USER, DB_PASSWORD). В некоторых случаях эти данные предоставляет хостер.
  5. Запускаем файл начальной инсталляции - http://[ваш_сайт]/wp-admin/install.php, заводим пароль админа.

Все! Новый сайт на движке WordPress создан.