Управление блогроллом в системе WordPress
Сегодня, как и обещал, немного о реализации блогролла под WordPress. Что это за штука такая и зачем нужна — читаем в предыдущей заметке: Все о блогролле — зачем и как лучше его делать.
Самый простой способ добавить данный элемент на сайт — это конечно правка того или иного php файла исходников установленной темы WordPress. Но этот не очень хороший метод, тем более что в системе (версии 2.3.1) для этих нужд есть специальный пункт настроек — Blogroll Management.
Обновление 16.12.2017: В последних версиях WP раздел блогролла разработчики убрали. Дабы его вернуть используйте плагин Link Manager. Либо можете просто создать список ссылок в сайдбаре разными методами.
Для начинающих блоггеров или тех, кто не смог (не захотел) разбираться немного поясню его назначение и возможности. Итак здесь вы можете добавлять свои ссылки для блогролла.
Состоит пункт из 4х закладок (см. изображение выше):
Manage Blogroll (Все ссылки) — позволяет просмотреть все ссылки с возможностью выборки по определенным категориям или типом сортировки. Здесь же можно перейти к редактированию или удалить одну и более ненужных ссылок.
Add Link (Добавить новую) — пункт для добавления новых ссылок в блогролл. Здесь можно задавать как базовые свойства — имя, адрес и описание, так и продвинутые — изображение, адрес RSS потока, рейтинг и небольшие заметки. Кроме того, есть возможность использовать настройки в правой колонке окна, где происходит присваивание категории, указание для ссылки открываться в текущем или новом окне, а также обычное задание ее видимости (отображается/скрыта).
Categories (Разделы ссылок) — в блогролле можно группировать ссылки по категориям. В этой закладке мы получаем возможность как создавать новые, так и управлять существующими категориями.
Import Links — импорт из OPML файла. Честно говоря, не особо в курсе что это такое, какой-то импорт:)
Вообще, судя по возможностям данного механизма, можно смело организовывать не только блогролл, а и небольшой каталог полезных ссылок с разбиением на категории, описанием и изображением для каждой записи. Причем управлять этим списком ссылок получится достаточно легко с использованием рассмотренного раздела Blogroll Management.
Что касается непосредственно моего блога, то я использую для отображения всего одну категорию — «Интересные блоги». Кстати, ее название автоматически отображается в шаблоне в качестве заголовка всего блока. Далее ссылки расположены по рейтингу. Я уже говорил, что для каждой ссылки можно указать некое значение рейтинга. Именно его я использую для сортировки ссылок в блогролле — наиболее активные и читаемые мною блоги находятся выше. Значения оценок изменяются от 1 (максимально высокая позиции) до 9 (минимальная).
Теперь немного слов о том, как я добился такого эффекта. Стандартными настройками, увы, обойтись не получилось. А установленная в блоге тема не поддерживает виджеты, посему все правки производились в коде. Вполне вероятно, что, используя какой-то виджет, вы запросто сможете указать тип и порядок сортировки. А пока рассмотрим мой вариант.
Функция блогролла wp_list_bookmarks
Для работы с блогроллом и ссылками используется следующая функция:
<?php wp_list_bookmarks('arguments'); ?> |
Полное описание всех аргументов можно найти здесь. С их помощью можно настраивать много всяких особенностей поведения данного блогка — визуальных, логических, для категорий и заголовков и т.п. Каждый следующий аргумент отделяется знаком — &. Синтаксис для аргумента — название_аргумента=значение_аргумента.
Общий алгоритм действий довольно простой:
1. Открываем нужный нам файл темы WordPress. Как правило, блогролл находится в боковой колонке — что-то типа sidebar.php. Доступ к файлу имеем либо по ФТП, либо из админки непосредственно.
2. Находим в файле нужное место, где уже есть данная функция (или просто место куда мы хотели бы ее вставить) и добавляем нужный код. Для сортировки по рейтингу достаточно написать:
<?php wp_list_bookmarks('orderby=rating'); ?> |
Если вы, например, хотите выводить еще значения рейтинговых оценок, можно использовать строку:
<?php wp_list_bookmarks('orderby=rating&show_rating=1'); ?> |
Как видим, ничего сложно нет. Если возникли какие-то вопросы по данной теме — пишите в комментариях, на почту или в аську.
Хак для рейтинга блогролла в админке
Теперь рассмотрим еще один небольшой прикол с менеджером ссылок — Blogroll Management. Если мы определились с сортировкой по рейтингу, то неплохо было бы его видеть постоянно в самой админке. Кликать на каждую ссылку и проверять соответствующее значение поля как-то несолидно, и долго к тому же. В то же время в самом менеджере подобного поля нет. Попробуем изменить эту ситуацию.
1. Находим в исходниках админки (папка wp-admin) файл link-manager.php. Копируем себе на комп для правки, предварительно сделав резервную копию на всякий случай.
2. Находим в коде блок:
$link_columns = array( 'name' => '<th width="15%">' . __('Name') . '</th>', 'url' => '<th>' . __('URL') . '</th>', 'categories' => '<th>' . __('Categories') . '</th>', 'rating' => '<th>' . __('Rating') . '</th>', 'rel' => '<th style="text-align: center">' . __('rel') . '</th>', 'visible' => '<th style="text-align: center">' . __('Visible') . '</th>', 'action' => '<th colspan="2" style="text-align: center">' . __('Action') . '</th>', ); |
Туда добавляем строку для отображения колонки рейтинга (выделена жирным шрифтом).
3. Далее находим блок переключения case, который начинается со строчки
switch($column_name) { …. |
В нем по аналогии с полем rel или visible добавляем код для рейтинга:
case 'rating': ?><td><?php echo $link->link_rating; ?><br /><?php break; |
Вставляйте код внимательно дабы не повредить конструкцию.
4. Сохраняем файл и перезаливаем его на ФТП. Заходим в админку, открываем наш менеджер ссылок и любуемся рейтингом ссылок.
Кстати, одинаковые по рейтингу ссылки, насколько я понял, дальше сортируются по наименованию. Но это, в принципе, не столь существенно, поскольку можно выставить оценки от 1 до 9ти. Всем должно хватить.
Хорошая статья, познавательная и информативная.
Пасиб за доступный язык без воды. 5 балов.
Попробовал сделать по описанию, оказалось что в моей теме за вывод ссылок в блогролле отвечает совершенно другая функция: php get_link, а не php wp_list_bookmarks.
Попробовал даже заменить имеющуюся функцию на вашу и всё пропало :)
Так что сортировка по рейтингу не получилась.
Поисковый робот, странно, конечно, по идее это от темы зависеть не должно. У меня вроде работает на этом блоге, на других не пробовал пока что.
У меня вообще чудеса: поставил плагин My Link Order, он тоже не сработал, хотя пишет, что всё нормуль. Видимо, у меня нестандартная функция всё-таки.
Доброго времени суток. Есть get_links, вот ссылка http://codex.wordpress.org/Function_Reference/get_links Но эта функция устарела и, похоже, более не поддерживается. Функция get_links была заменена более новой wp_list_bookmarks() вот ссылка http://codex.wordpress.org/Template_Tags/wp_list_bookmarks Если ваш WordPress не поддерживает\видит функции wp_list_bookmarks() значит у вас достаточно или даже очень старая версия WordPress. Мои ссылки на англоязычную документацию. Хотите на русском — вот хороший сайт http://wp-kama.ru/function/wp_list_bookmarks Всего доброго.
Спасибо за статью!)