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

Как сразу открыть запись, если она единственная в поиске?

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

//перенаправление на одиночный результат поиска start
function wph_single_search_result() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1) {
            wp_redirect(get_permalink($wp_query->posts['0']->ID));
        }
    }
}
add_action('template_redirect', 'wph_single_search_result');
//перенаправление на одиночный результат поиска start

Посетитель будет сразу перенаправлен на единственную найденную запись, минуя просмотр страницы с результатами поиска.

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

По умолчанию WordPress выполняет поиск только по страницам и записям сайта. Однако, если на вашем сайте активно используются произвольные типы записей, то поиск на сайте будет бесполезен. Исправить эту ситуацию достаточно легко, надо добавить в файл functions.php вашей темы следующий код:

//добавление произвольных типов в поиск start
function wph_search_all($query) {
    if ($query->is_search) {
    $query->set('post_type', array(
	   'post', 'page', 'custom_type1', 'custom_type2'
	)); }
    return $query;
}
add_filter('the_search_query', 'wph_search_all');
//добавление произвольных типов в поиск end

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

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

Заголовок для произвольных типов записей

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

//изменение заголовка по умолчанию start
function change_title( $title ){
     $screen = get_current_screen();
     if ('movies' == $screen->post_type) {
        $title = 'Введите название фильма';
     }
     return $title;
}
add_filter('enter_title_here', 'change_title');
//изменение заголовка по умолчанию end

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

Как добавить ссылку «Читать дальше» для анонсов?

Ссылка "Читать дальше" формируется при использовании в тексте записи тега <!--more-->. Она будет показана при выводе текста записи через функцию the_content (опция "Полный текст" в "Настройках\Чтение"). Если же у вас выводятся "Анонсы", то никаких ссылок показываться не будет (авторы тем должны сами выводить ссылку на полный текст записи). Небольшой сниппет кода позволит вам вывести ссылку "Читать дальше" и для анонсов записей.

Добавьте в файл functions.php вашей темы код:

//ссылка "Читать дальше" для анонса start 
function new_excerpt_more($more) {
    global $post;
    return '[...] <a class="moretag" href="'. get_permalink($post->ID) 
    . '">Читать дальше</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
//ссылка "Читать дальше" для анонса end

Оформить стиль этой ссылки можно через css-класс .moretag.

Как изменить текст ссылки «Читать дальше»?

Анкор ссылки "Читать дальше" (ссылка появляется при использовании тега <!--more--> в записи) можно изменить напрямую, отредактировав вызов функции the_content в файлах темы так:

<?php the_content("Читать дальше..."); ?>

Но в некоторых случаях лучше использовать отдельный сниппет кода в файле functions.php, так как этот файл удобнее переносить в дочернюю тему (и таким образом ваши изменения не потеряются при обновлении темы).

Как зашифровать email в тексте записей?

Шифровка email в WordPress

WordPress обладает встроенной функцией antispambot по шифровке email-адресов. Эту функцию можно использовать для создания шорткода, который вы сможете использовать в тексте ваших записей, чтобы зашифровать email-адреса.

Как отключить или ограничить количество редакций записей?

Редакции записей

WordPress создает редакции записей при каждом их обновлении. Иногда эта функция полезна, но в итоге каждая запись в вашем блоге может иметь сотни разных редакций. Это засоряет базу данных, да и необходимость в редакциях записей, написанных пару лет назад сомнительна. Чтобы ограничить число редакций вам необходимо добавить в файл wp-config.php код: