Mémoires — лучший способ вести дневник на Маке

Плагин для WordPress: CR Recent Posts

| 13 Comments | No TrackBacks
Я продолжаю заниматься переделкой сайта Coding Robots и рожать небольшие плагины для WordPress, которые могут пригодиться в хозяйстве. Буду постить их в блог, может и вам окажутся полезными. Мне нужно выводить на странице (Page в WordPress) несколько последних заметок из блога, и чтобы для этого не приходилось менять шаблог. Я написал плагин-фильтр CR Recent Posts. Работает таким образом: прямо в содержимом записи (Post) или страницы (Page) пишете: [POSTS количество_заголовков] или [POSTS количество_заголовков имя_или_slug_категории] Например, чтобы вывести двенадцать последних заголовков блога, пишете [POSTS 12], и получаете примерно такое:
Чтобы вывести последние 5 заметок из категории "Mémoires" (у которой slug — короткое имя для ссылки — memoires), используйте [POST 5 memoires] или [POST 5 Mémoires]. Скачать cr_recent_posts.zip (766 байтов) Установка как обычно: распакуйте, загрузите cr_recent_posts.php в wp-content/plugins/ и активируйте в админке. Обновление (31/10): Версия 1.1:
  • Исправлены названия функций для избежания возможных конфликтов с другими плагинами.
  • Убран ненужный захват вывода.
Качать по той же ссылке.

13 Comments

Дмитрий, я тут для одного из сайтов чуть-чуть переделал Similar Posts, чтобы он работал с русским языком, добавив простой stemming из открытого источника. Хочется дать сообществу, а руки не доходят. Не нужно Вам?

Дим, get_titles - плохое имя для функции, очень очевидно. Значит будут конфликты с другими плагами.

И хорошо-бы покешить результат этой функции. Про файловый кеш в WP я писал тут - http://www.chanishvili.org/wp-cache251/

Roland: точно. Функцию брал из неплагина, который сейчас на сайте использую, поэтому забыл переименовать. Исправил.

Насчет кэша -- в смысле, отдельно писать свой кэш? Мне это не надо, у меня WP-Super-Cache.

А у кого не стоит -- разница между 13 и 14 запросами небольшая.

всё хорошо, кроме того что зачем дублировать те посты которые и так уже видны на данной страницы? было бы хорошо получить 12-ть последних постов..которых не видно на главной!!

BOB: Делалось это для того, чтобы выводить последние посты на страницах, а не в постах.

Здравствуйте. Не могу разобраться как публиковать посты на специально созданные подстраницы сайта? Например "О нас", или "литература". Перерыл весь интернет.

То, что тебе нужно, называется "категории", а не "подстраницы".

Вобщето я гуглил вопрос "как публиковать посты на специально созданные страницы", замена слова на категории дала тот же результат. По-моему у меня одного этот вопрос возник, что странно. Мне кажется очевидным что функционал внутренних страниц должен соответствовать функционалу главной. И должна быть возможность постить на не главные страницы, вместо главной.

Денис, страницы - это именнно "статичные" страницы, а не разделы сайта. Тебе нужны категории. Публикуешь пост в категорию x - получаешь на страничке категории x твой пост. Например, http://old.sellme.ru/category/programmirovanie
Можешь в настройках убрать "category" и тогда будет example.com/programmirovanie

Спасибо, буду разбираться. Категории отличаются от рубрик? У меня нигде нет слова категории в админке)

Да, в русской версии это называется "рубрики".

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

function cr_recent_posts($content)
{
$regex = "/\[POSTS (\d+)[ ]?(.+)?\]/";
if (preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) {
for ($i = 0; $i < count($matches); $i++)
$content = str_replace($matches[$i][0], cr_recent_posts_get_titles($matches[$i][1], $matches[$i][2]), $content);

}
return $content;
}