Самоссылки в навигации

Дублируя комментарий к посту о самоссылке (кстати, я тогда просто не подумал о простейшем is_home()&&!is_paged(), который легко обходит и установку во вложенный каталог) привожу код для удаления ссылок в трех самых часто используемых списках в шаблонах Вордпресса, который использую лично я. Дублирую потому что кинул неправильный код из старых каких-то тем, и потому что в комментариях были съедены целые куски кода.

Дело в том, что по умолчанию ВП пихает на каждый элемент кучу бесполезных классов, даже если смотреть со стороны семантики — ну кому интересен номер конкретной рубрики в базе. И на элементе с текущей же рубрикой/тегом/страницей, если мы находимся на ней, также вешается класс (единственный полезный, да). При этом ссылка остается активной, что ведет все к той же «петле».

Так что у нас две задачи. Первая — удалить весь мусор в списке (механизм ВП не оставляет нам выбора, как использовать регэкспы). Вторая — если мы находимся на нужной странице, убрать тег ссылки, ну и, естетсвенно, на li оставив класс для выделения (но .current-cat, .current-page я меняю на просто .current — этого всегда достаточно).

Функция получается такая:

function correct_list_pages($output){
	if(!is_category())
		return preg_replace('~<li([^>]+)>~i','<li>',$output);
	$output=preg_replace('~(<li)[^>]+(current)[^>]*(>[^<]*)<a[^>]+>([^>]*)</a>([^<]*</li>)~i','$1 $2$3$4$5',$output);
	$output=preg_replace('~<li\s*class="([^>]+)"\s*>~i','<li>',$output);
	$output=preg_replace('~<li current>~i','<li class="current">',$output);
	return $output;
}

Красота и скорость здесь не особенно важны, так что и замарачиваться с ними не стоит. Полученную функцию вешаем на нужный(е) фильтр(ы) в functions.php, который лежит в теме.

Например:

add_filter('wp_list_pages', 'correct_list_pages', 1);
add_filter('wp_list_categories', 'correct_list_pages', 1);
add_filter('wp_tag_cloud', 'correct_list_pages', 1);

Минус этого подхода в том, что при немного другом формате может не срабатывать. Кроме того, сторонние плагины (например, Simple Tags) этим хуком не подхватятся (правда, даже в таких профессиональных плагинов функции не подвешены на хуки, и это отвратительно). Можно, конечно, использовать определение текущей по ID (его можно найти по -\d+\s), но и так достаточно.


Понятное дело, есть тонкость в определении, нужно здесь убирать ссылку или оставлять ее, а в некоторых случаях — убирать и сам титл рубрики/тега/страницы. Тут обычно каждый решает сам, но лучше включить логику.

Выбираем светильники citilux, globo, lussole в Салоне света.
{5 комментариев}

Мой Вархаммер

Помню, курсе на первом-втором я решил увлечься настольными играми, в довесок всем прочим ролевым пристрастиям. Тогда оказалось, что это не так легко.

Мало того, что в нашей задрипанной провинции был только один магазин, где продавались миниатюры, так еще обычному студенту было сложно тратить свои кровные на пластиковые фигурки, которые потом еще надо было клеить и красить, в итоге понимая, что уже купленного не хватает до мало-мальски нормальной армии, которой можно поиграть (а надо сказать, отряд клановых крыс, считай, пушечного мяса, стоил тысячу рублей). А еще можно было купить или сделать самому всякие препятствия, домики и даже почву (песок, травку) в небольших пакетиках. Мальчишеские игры в войнушку тем дороже, чем взрослее становишься, да.

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

Скавены!!1

И еще я помню, с каким трудом добывались мануалы и армибуки — приходилось сидеть в медленном университетском интернете, забираясь в яндексе и гугле аж до сотой страницы. Вот уж что сейчас кажется ненормальным — когда вы в последний раз заходили дальше ТОПа?

Сейчас, наверное, все это можно найти легко, и на русском, и на английском. И все же, для себя выложу пару архивов из того времени...

Warhammer Fantasy Battles. Собственно, правила и армибуки того, во что я играл. Еще на 95 винде (и сеге, кажется) была игра по этой вселенной, Dark Omen, во многом следовавшая правилам. К сожалению, на новых компьютерах не запускается.

Warhammer 40000. Не так давно вышла игра по этой вселенной, но оказалась скорее пародией на Z, чем достойным портом на компьютеры. Вообще, если Варкарфт в свое время был слизан с ФБ, то из 40к некоторые особенности были взяты в Старкрафт — но несмотря на это, Blizzard'у удалось сделать все-таки свои вселенные.

Warhammer Battle Fleet Gothic. А вот в это мне даже не удалось поиграть (даже если бы модельки кораблей у нас продавались, стоили бы они запредельно), только немного попускать слюни на правила. Четкие и интересные правила для масштабных космических битв. Я когда изучал DirectX, пытался написать порт, но не сложилось — а вот сейчас думаю, что браузерка по мотивам могла бы выйти потрясающая. А уж готическая стилистика в вакууме — это вообще крышесносно.

Mordheim. Собственно, та же ФБ, но приспособленная под тактику, а не стратегию. Если бы мы не бросили увлечение таблтопами, именно Мордхейм бы избавил нас от финансовых трудностей — в целом, это такая tactic-RPG, в которой используется куда меньше миниатюр (и скавены там тоже есть). По этой вселенной делались полигонки (и нашими, и буржуинами), но до выпуска полноценной игры почему-то не дошло. А жаль.

«Темный клинок» — невыразительные игры онлайн.
{7 комментариев}

Убейте меня

Хочю-хочю-хочю!

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

Каждый такой поход голову прочищает лучше прыжка с парашютом.

Но, к сожалению, грипп обломал мне выходные. А осень уходит.

«ЭкоРусСтрой», очистные сооружения канализации, водосливных, водосточных, хозяйствено-бытовых канализаций.
{12 комментариев}

Короткоствол (не удержался)

Самый отвратительный вид демагогии — когда рядом оказываются два утверждения: «убить можно чем угодно, да хоть ножом с кухни» (мне сразу вспоминается таксист из какого-то pulp-фильма, утверждавший, что знал, как убить бумагой), и «пистолет — это оружие самозащиты». Ну, вы понимаете, что никто всерьез не будет хвататься за нож, если есть огнестрел, а уж несмотря даже на маленький range скрытность, убойность и легкость в применении пистолета делает его в городе куда более эффективным оружием, чем все остальные механизмы для убийства. Хотя что я объясняю, боже.

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

Люди, пиарящиеся в Интернетах с помощью своих радикально-невозможных взглядов — радуют, даже больше «идиотов от IT», считающих, что все должны уметь то, чему они учились много лет. И prophet их, Никонов.

Профессиональный ремонт холодильников Indesit (индезит), Москва.
{23 комментария}

100км

Дорога
{2 комментария}