Просмотр архивов в категории: ‘Плагины’

Как написать плагин для WordPress

На моей новой работке постоянно приходиться модифицировать WP или выдумывать всякие нестандартные решения. Вот буквально сейчас, текущий проект — это будет каталог специфичных продуктов с возможностью покупки товаров через онлайн-магазин. E-commerce модуль у нас написан отдельно от каталога продуктов, которая в свою очередь храниться в базе WordPress. Главная задача перед программерами — это как связать каждый пост (чт. один конкретный продукт) с модулем e-commerce.

Я им предложил наваять быстренько плагинчик для WP, который хранил бы сгенерированный на лету уникальный код для каждого продукта в связке с ID поста WP. Таким образом, модуль онлайн-шопа сможет выцеплять всю необходимую инфу из поста по коду продукта через ID поста и с другой стороны вести учет продаж в своей базе.

На таком примере, легко показать прелесть WordPress в создании своих плагинов. Плагин получился очень простой. В продолжении поста подробно про то, как написать плагин за полчаса.

Рабочий лытдыбр — плагин Custom Metabox Panels

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

Для этого мной был придуман плагин, который позволяет добавлять custom fields в виде сэтов и отдельных панелек в админке при написании нового поста. Разумеется, прежде, чем изобретать велосипед, я погуглил вдоль и поперек. Видел аналогичные решения, но их главная проблема в том, что это в основном всем hardcoded в functions.php или реализовано посредством плагина с лимитацией на создание всего 1 панели.

Знакомимся поближе с моим плагином

Подсветка синтаксиса и автоопределение языка

За всё время существования S@R для подсветки синтаксиса разного кода в постах я перепробовал огромную кучу самых разных плагинов. Среди всего прочего особо долго продержались Code Markup и iG:Syntax Hiliter. В последнем очень хорошо сделана подсветка разных языков, но все равно он мне показался несколько громоздким и не совсем удобным (зачем использовать BB-код, когда есть теги pre и code?).

Сегодня наконец-то руки дошли до javascript'а, сделанного Иваном Сагалаевым highlight.js (Syntax highlighting with language autodetection.) — подсветка синтаксиса с автоопределением языка. Замечательных 28 килобайт, несколько минут на подключение (никаких плагинов) и вууаля.

О том какой он удобный и простой в использовании я рассказывать не буду, сходите на офф.сайт для полного ознакомления. Но я однозначно рекомендую его всем, кому нужно что-то подобное.

PS. Прошу прощения, Иван, за то что выдрал CSS и иконки. Просто любопытсво быстрого тест-драйва. В любом случае, в ближайшее время исправлюсь :).

Давно я не обновлял блог

С выходом WordPress 2.0.5 решил обновить не только сам движок, но и всё ему сопутсвующее. Обновил все плагины, сделал небольшую чисточку папок на хосте, прочистил весь кеш WP и заметил вот что:

40 queries. 0.259 seconds.

Правда, бывает заскакивает за 1 сек. И эта цифра при следующем комплекте:

  • flickrRSS 3.1.1 — 5 запросов.
  • Ultimate Tag Warrior 3.141592 — 3 запроса.
  • WordPress 2.0.5 — всё остальное, 32 запроса (ссылки-блогролл, 9 постов на главной, архивы по месяцам, мета данные, header & footer).

И можно (и займусь этим позже) еще почистить код, убрать лишнюю фигню и т.п. При этом WP2.0.4+Plugins генерировал эту же (главную) страницу за 0.80 секунды при 23-27 запросах. Т.е. результат на лицо 27/0.800 против 40/0.260.

Для тех, кто хочет узнать о новшествах новой версии, то предлагаю пройти на MaxSite — там отличный обзор на русском. Кстати, если пользуетесь Ultimate Tag Warrior, то обязательно обновите его — очень большие изменения! И все остальные тоже уже обновились. Следите за своим блогом :)

Ну, а я довольный апдейтом, всё же надеюсь, что к выходу WordPress 2.1 братья по разуму закончат Shuttle. А то с марта месяца никаких новостей про него, а было бы классно с такой админкой.

Видеокастинг в WordPress

На мой взгляд, самое удобное (из всего опробованного мною сегодня) для видеокастинга в WordPress это связка Google Video + плагин Viper's Videos Tags.

Почему Google Video?
Во-первых, это постоянное место хранилище. Вы можете распространять своё видео как хотите и для кого хотите. Google Video — это траффик. Заливается по http до 100 метров быстрее, чем по ФТП (проверял сам лично).

Прямой стримнг видео со встроенным видео плеером и кучей всяких фенечек для шаринга вашего видео в сети.

Почему Viper's Videos Tags?
Это единственный нормальный плагин для WordPress. Viper вообще чувак классный, у него все плагины работают. Уже в течении двух лет использую парочку его плагинов. Теперь вот еще этот видео-плагин.

Технология видеокастинга.
Всё очень просто. Сначала закачивается видео в Google Video, даются опции шаринга, описание, копирайты, категория видео бла бла бла. После этого (разумеется, плагин уже установлен), в написании нового поста вставляем ID видео через quicktag (можно также вставлять YouTube, Avi, MPeG, QuickTime, WMV). И жмем на «Публиковать»!

Всё, ваш видеокаст готов к употреблению! Enjoy ;)

Список постов из отдельной категории

А я уже рассказывал как вывести списком «Любимые записи» aKa Noteworthy? Это плагин, который до сих пор находиться в beta-стадии. Мода, ага. Нам по фиг, скачиваем и устанавливаем его. Нужно будет сделать категорию специальную (noteworthy, evergreens, favorites, фигня — как вам угодно). Записи, котороые будут в этой категории можно помечать, например в цикле, каким-нибудь сердечком или как делаю это я допонительно — вывожу отдельный список на странице с архивами, это мои самые любимые посты в блоге.

Чтобы сделать такой же список, Вам понадобиться этот php код (css на усмотрение, у меня обычный список ul/li):

< ?php if (function_exists(nw_noteworthyLink)) { ?>
<div class="sidebox">
<h2>Любимые записи</h2>
<ul>
	< ?php
	# numberposts=10 - указываем кол-во ссылок (постов)
	# category=28 - id любимой категории
	# $luv - переменная для цикла foreach, можете поменять её название на любое другое

	$luv = get_posts('numberposts=10&category=28'); ?>
	< ?php foreach($luv as $post) : ?>
	<li><a href="< ?php the_permalink(); ?>" rel="bookmark">< ?php the_title(); ?></a></li>
	< ?php endforeach; ?>
</ul>
<p align="right"><a href="< ?php echo get_settings('siteurl'); ?>/category/noteworthy/feed/" title="RSS для Любимых записей" class="feedlink">Подписаться на RSS</a></p>
</div>
< ?php } ?>

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

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

Пользуйтесь в своё удовольствие ;).

Как сделать Топ 15 Тагов

Вы это можете увидеть на моей странице архивов в боковой панели. Для этого нам понадобиться плагин Ultimate Tag Warrior. Сначала мы его установим, активируем, поднастроем в адмике WP. Всё остальное — дело 2х минут. Нужно только не забывать про RTFM — в мануалах и readme плагинов всё написано.

Итак, всё очень просто. Вывести такой своеобразный ТОП можно встроенной в UTW функцией:

< ?php if (function_exists(UTW_ShowWeightedTagSet)) { ?>
<div class="sidebox">
<h2>Топ 15 тагов</h2>

	<div class="verticaltags">
	< ?php UTW_ShowWeightedTagSet("weightedlongtailvertical","",15); ?>
	</div>
</div>
< ?php  }  ?>

В середине, в строке UTW_ShowWeightedTagSet («weightedlongtailvertical»,"",15) число 15 меняем на любое какое хотим, чтобы было в нашем ТОПе.

Но это не всё. Без нормального CSS, у Вас ничего не получиться красиво. Вот такой css вам сделает всё красиво:

/* TOP 15 TAGS */
.verticaltags div {
	margin: 0 !important;
	text-transform: lowercase;
	font-weight: bold !important;
	}

/* Обычная ссылка */
.verticaltags div a {
	color: #fff !important;
	border: 0;
	padding: 3px;
	}
/* Ссылка при наведении мышки */
.verticaltags div:hover, .verticaltags div a:hover  {
	color: #437295 !important;
	background: transparent !important;
	}

Split posts and comments

Было бы неплохо иметь такую такую возможность, как соединения постов и комментариев к соответсвенному посту в единый пост. А то вот как получилось с двумя предыдущими постами. Две, казалось бы разные темы, а получилось об одном и том же. :))

Прямо какие-то разговоры за чашечкой кофе ;).

Role management в Wordpess

Искал один плагин и нарвался на парочку интересных и преполезнейших плагинов для WordPress. Оба относятся к role management'у.

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

Role Manager — расширяет возможности стандартного манагера званий WP. Можно добавлять, удалять старые/новые звания.

Страница с архивами

Смотрю в последнее время у народа появился большой интерес к странице в архивами (типа как у меня). Особенно после обновления у Афины :).

Выкладываю шаблон этой страницы на русском языке, готовый к упортреблению. Внутри php и css файлы. Также нужно иметь 2 плагина для его нормального функционирования: Extended Live Archives и Weighted Categories.

Arhives.php надо положить в папку с Вашим шаблоном. CSS нужен для того, если у Вас не К2 шаблон (в К2 есть уже украшения для него). Затем создать статичную страницу на базе шаблона Custom Archives, задать красивый post-slug. И пользоваться :)