Рубрика: Записи

Как получить текст записи до и после тега <!—more—>?

Иногда вебмастерам надо не только определить наличие тега <!--more--> в записи, но и произвести какие-либо действия именно с определенной частью записи - вводной или основной. Для решения подобной задачи можно воспользоваться функцией get_extended, которая при использовании возвращает массив из двух частей записи (до тега <!--more--> и после него). Использовать функцию просто:

<?php 
$content = get_post_field('post_content', get_the_ID());
$content_parts = get_extended($content);
echo $content_parts['main'];                //вывод записи до тега more
echo '<p>реклама</p>';                      //вывод рекламы (просто пример)
echo $content_parts['extended'];            //вывод остальной части записи 
?>

Это немного надуманный пример, поэтому рассмотрим более реальную задачу.

Как определить наличие в записи тега <!—more—>?

Перед вебмастерами иногда возникает задача определения в тексте записи наличия тега <!--more--> (кнопка "Вставить тег «Далее»" в визуальном редакторе), который служит для разделения записи на вводную и основную части. Определить разделение записи тегом <!--more--> можно с помощью своего собственного условного тега has_more, который надо добавить в файл functions.php вашей темы:

//условный тег проверки more в записи start
function has_more() {
    global $post;
    if (empty($post)) return;
    return (bool) preg_match('/<!--more(.*?)?-->/', $post->post_content);
}
//условный тег проверки more в записи end

Использовать данный тег в файлах вашей темы очень просто. Например, вот так:

Как удалить префиксы «Защищено» и «Личное» из заголовков?

Префиксы заголовков по умолчанию

При установке видимости записей в "Защищено паролем" и "Личное" движок автоматически добавит к заголовкам таких записей префиксы "Защищено:" и "Личное:". Эти префиксы можно или удалить или изменить на свой текст. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как добавить произвольные типы записей в архивы?

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

//произвольные типы записей в архивах start 
function wph_custom_types_archive($query) {
if(is_category() || is_tag() && empty($query->query_vars['suppress_filters'])){
    $query->set('post_type', array(
        'post', 'custom_type1', 'custom_type2'
    ));
return $query;}
}
add_filter('pre_get_posts', 'wph_custom_types_archive');
//произвольные типы записей в архивах end

Где 'custom_type1' и 'custom_type2' это ваши произвольные типы записей.

Как отключить автоформатирование текста записей?

WordPress позиционируется как движок "для домохозяек", которые вовсе не обязаны знать html-разметку. Поэтому WordPress сам форматирует текст записей, расставляя теги параграфов, выполняя типографские правки и т.д. Такой способ "облегчить" жизнь вебмастеров вызывает множество споров. Попробуйте, например, в тексте записи напечатать символ " (так называемый знак дюйма) и опубликуйте запись. В опубликованном виде у вас будут выведены кавычки-елочки «. Единственный способ вывести символ " это на вкладке "Текст" редактора напечатать его html-сущность &quot;, опубликовать запись и больше никогда не переключаться на визуальный режим редактора (он заменит html-сущность на сам символ, который в опубликованном виде превратится в символ кавычек-елочек).

Как изменить длину цитаты записи?

Цитата записи

По умолчанию длина цитаты записи ограничена первыми 55 словами (при автоматическом создании цитаты, когда она вручную не указана). В некоторых темах цитаты используются при выводе страниц рубрик или архивов, поэтому если вас не устраивает размер цитаты по умолчанию, то вы можете его легко изменить с помощью следующего кода, вставленного в файл functions.php вашей темы:

Как вывести список запланированных к публикации записей?

Свой виджет запланированных записей

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

Откройте файл sidebar.php вашей темы и найдите там что-то похожее этот код:

<?php dynamic_sidebar( 'sidebar-1' ); ?>

Это вызов функции вывода виджетов сайдбара. Так что у вас есть выбор куда вставить свой виджет запланированных записей - до или после виджетов сайдбара.