Mar
12
Преди малко нанесох някои промени в блогрола. Използвах един много полезен widget, който намерих и ще използвам напред.
Лични мотиви
Блоговете в Google reader-а ми продължават да растат и намирам за редно да линкна всички тях в блогрола. От друга страна, не намирам за уместно да изтипосам 50+ линка на едно място, защото сайта ми ще стане като страница-подкаталог на Start.bg.
Затова ползвам една нова приставка, която претърсва категориите за линкове от вашия блог и създава нов панел - блогрол, с произволни линкове.
- Мислих как точно да реализирам концепцията, така че схемата е следната (както казваше Жоро Гирата в часовете ми по физическо):
- В категорията 'Приятели' са поместени блогове, които чета ежедневно и имат обратна връзка към мен.
- В динамичния блогрол са над 3 дузини блогове, които са в блогрола ми и преглеждам всеки ден или през ден. Но нямат линк към мен. Там са и блогове, които са ме линкнали, но не следя толкова редовно (да ме извиняват). Някои от личните блогове съм оставил в страницата 'Партньорство'.
Тъй като за час преместих много линкове от едно място на друго, от категория в друга и прочие - ако някой се чувства засегнат, че го няма в някоя категория, или съм му пропуснал линка - да ми драсне един коментар.
Ако искате да минете от динамичния блогрол в статичния пък - драснете един коментар или в страницата за контакти. Важното е комуникация да има!
Плъгин
Приставката се казва Better Blogroll Widget. Може да я свалите на сайта и да я качите в wp-content/plugins директорията. Аз лично не успях да я инсталирам с новата система на WP 2.7 за инсталация на плъгини по име (имах проблем с хранилището и затова я свалих ръчно).
Както е видимо от сайта, предимствата на плъгина са, че създава блогрол с динамични (ротиращи се) линкове и ги извежда в един панел в страничната лента. Може да ограничавате броя линкове, които се показват - аз лично съм ги сетнал на 20. По този начин на всеки рефреш или всеки уникален посетител ще бъдат показани различни линкове. Така целият ви блогрол ще е видим 'на части'. Намирам го за по-уместно - хем всичките ви блогове са 'на линия', хем не ви заемат половината уебсайт.
Друг benefit е, че може да подберете категорията с линкове, която да ползвате за блогрола. Възможен е изборът на всички Link Categories, на някои конкретно или на всички с изключение на някои.
Отгоре на блогрола има място за коментар - примерно, че сайтовете се зареждат динамично. Хубаво е за уточнение, все пак не е често срещано явление.
Техническа част
Най-същественото е да свалите, инсталирате и активирате плъгина в блога. Той е активен като widget, така че, ако темата поддържа 'Джаджи', директно го пренасяте в лентата от менюто Appearance -> Widgets.
В настройките на приставката трябва да зададете категориите, които искате да са видими. Има един лек проблем, поне при мен: използвам widget-а Links за лични и приятелски връзки, а новият plugin за блогрол. В стандартната конфигурация на линковете widget-ът извежда всички линкове, вкарани от вас, изведени по категории. Това означава, че ако създадете нова категория Blogroll и добавите в нея всички нови линкове за Better Blogroll, то те ще бъдат дублирани. Нещо повече: Links ще изведе пълният списък, а непосредствено под него ще бъдат видими произволните няколко препратки от Better Blogroll.
Кофти.
Workaround
Необходимо е да премахнем дублираната категория от Links джаджата. По този начин линковете ще бъдат видими само от блогрола, което би било желан ефект.
Някой може да попита какво ще стане, ако зададем на линковете да бъдат Private. Ами, нищо смислено - няма да бъдат видими отникъде.
По принцип можем да редактираме файла на sidebar widget-а, в който се показва цялата информация. Това би работило поне в случаите, в които нямаме поддръжка на widget-и в темата.
В такъв случай търсим в папката на темата sidebar.php, l_sidebar.php или нещо в тоя род. Там търсим за функцията wp_list_cats() (в старите версии) или wp_list_categories(). Възможно е тя да се вика с параметри или без, важно е да добавите изключването на определената категория. За целта ще ви трябва ID-то й. В панела Links -> Link Categories от административното меню избираме някоя от категориите. В адресбара ще видим ID-то на категорията - cat_ID. След това се връщаме към функциите wp_list_cats() или wp_list_categories().
При мен функцията в sidebar.php изглежда така:
<?php wp_list_cats('sort_column=name&exclude=372'); ?>
Едната опция е за сортиране по азбучен ред на линковете, а другата - за ID на категорията, която искам да изключа от списъка. В моя панел има 3 категории: Връзки (лични линкове), Приятелски и Блогрол. ID-то на категорията Блогрол е 372.
Widget-базирана тема
Така. Проблемът е, че този код не работи при мен поради наличие на widget-и. Във файла functions.php на темата има следната декларация:
if ( function_exists('register_sidebar') ) register_sidebar();
Явно нашият WordPress не използва файла от темата, ами друг файл, базиран на widget-и. След кратко ровене стигаме до wp-includes директорията. Там отваряме widget.php (или widgets.php). Там намират място всички приставки, които използваме, с техния собствен код, филтри и указатели. Търсим за функцията wp_widget_links. Там има различни функции, към които се добавят филтри. В случая трябва да филтрираме категорията, която желаем да изключим - така че я добавяме като допълнителна стойност на масива от филтри. Добавяме аргумента exclude_category с ID-то и крайният резултат изглежда горе-долу така:
wp_list_bookmarks(apply_filters('widget_links_args', array( 'title_before' => $before_title, 'title_after' => $after_title, 'category_before' => $before_widget, 'category_after' => $after_widget, 'show_images' => true, 'class' => 'linkcat widget', 'exclude_category' => '372' )));
Запазваме файла и го качваме отново в системата. Widget-ът вече работи, както си му е редът. Трябва само да си припомним за тази корекция, ако правим нова инсталация на блог и искаме същите настройки, или обновяваме wordpress-а.
Безподобния пост.
Related posts brought to you by Yet Another Related Posts Plugin.


















Здрасти,
видях се в пола и държа да кажа "Мерси"!
Пак заповядай - и аз благодаря за линка.
Тенк ю за линка, аз също те аднах в мойто блогче
[...] седмица споменах за промените в блогрола и чистката на част от нещата, които чета. Това се [...]