Архив рубрики: WordPress

Функции пагинации в WordPress 4.1

Знали ли вы, что частой причиной взлома сайтов на WordPress являются вредоносные темы и плагины? Читайте подробности: Учебное пособие по безопасности WordPress.

Обновление: версия 4.1 вышла 18 декабря.

В WordPress версии 4.1 появятся несколько новых функций для упрощения навигации в темах: the_post_navigation, the_posts_navigation и функция пагинации the_posts_pagination.

Для постраничной навигации многие темы для WordPress внедряют поддержку таких плагинов, как WP-PageNavi, а начиная с темы Twenty Fourteen, некоторые авторы последовали примеру стандартной темы и стали выполнять пагинацию с помощью встроенной функции ядра paginate_links.

Использование этой функции часто требует большое количество кода и иногда включает логику для работы с постоянными ссылками модуля WP_Rewrite, данными о запросе WP_Query и прочее. Начиная с WordPress версии 4.1 разработчики ядра обернули эту логику в одну простую функцию.

the_posts_pagination()

Функция the_posts_pagination() вставляет блок пагинации в тему WordPress:

<?php paginate_links(); ?>

 

twentyfifteen-pagination-wordpress

В качестве единственного параметра функция the_posts_pagination() принимает массив, который передается в функцию paginate_links(). Это значит, что весь функционал который мы ранее выполняли с помощью paginate_links(), также легко реализовать и с помощью новой упрощенной функции the_posts_pagination().

Например, можно добавить символ № перед каждым номером страницы:

the_posts_pagination( array( 

    'before_page_number' => '&#8470;', 

) );

 

По умолчанию the_posts_pagination() отображает первую и последнюю страницу, а также по одной странице вокруг текущей. Все остальные заменяются многоточием. Это поведение можно изменить с помощью аргументов:

  • show_all — показывать все страницы
  • end_size — количество страниц в начале и конце списка
  • mid_size — количество страниц слева и справа от текущей страницы

Например:

the_posts_pagination( array(

    'end_size' => 2,

    'mid_size' => 2,

) );

 

Данный код будет отображать первую, вторую, предпоследнюю и последнюю страницы, независимо от текущей. А вокруг текущей страницы будет по две страницы с каждой стороны. На примере темы Twenty Fifteen это будет выглядеть следующим образом:

twentyfifteen-pagination

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

the_posts_navigation

Функция the_posts_navigation() является менее привлекательной альтернативой функции the_posts_pagination(). Она выводит лишь ссылки на следующую и предыдущую страницы относительно текущей.

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

<?php the_posts_navigation(); ?>

 

С помощью ключей prev_text и next_text передаваемого массива, можно изменить текст ссылок. По умолчанию используется «Старые записи» и «Новые записи», что подойдет для большинства случаев.

the_post_navigation

Функцию the_post_navigation() можно использовать в шаблоне вывода одной записи. Данная функция отображает ссылки на следующую и предыдущую записи относительно текущей. Она также хорошо подходит для использования в шаблонах прикрепленных файлов.

<?php the_post_navigation(); ?>

 

Аргументами prev_text и next_text можно изменить текст, куда строкой %title можно вставить заголовок следующей или предыдущей статьи:

the_post_navigation( array(

    'next_text' => 'Следующая запись: %title',

    'prev_text' => 'Предыдущая запись: %title',

) );

 

Заключение

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

Следует отметить, что все три функции выводят результат сразу на экран. Если вы хотите записать результат в переменную, сделать это можно добавив префикс get_ к любой из них, например get_the_posts_pagination().

Напоминаем, что WordPress версии 4.1 выйдет в декабре 2014 года вместе с новой стандартной темой Twenty Fifteen.

Функции пагинации в WordPress 4.1



2014-12-24T13:08:51
Лучшие учебники по Wodpress

Фишки для блога на WordPress

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

Как отключить комментарии от статей

в админке появляется коментарий от своего блога

Сейчас я занимаюсь переписыванием старых постов и после каждого редактирования и пересохранения статьи приходится удалять десятки комментариев от имени «измененных» статей.  Если же редактируемая статья ссылается на другие посты, то появляется и несколько комментариев. Кто и зачем придумал эту бесполезную функцию непонятно. Но отключить ее довольно просто. Все, что нужно — добавить в файл functions.php небольшую функцию. Вот ее код:

function disable_self_ping( &$links ){

    $site_url = get_option( 'home' );

    foreach ( $links as $key => $val )

        if ( strpos( $val, $site_url ) !== false ) unset($links[$key]);

}

add_action( 'pre_ping', 'disable_self_ping' );

Как отключить проверки обновлений плагинов и Вордпресс

Если Вы хотите снизить нагрузку на блог и отключить автоматическую проверку обновлений плагинов и движка, скрипт Вам поможет. Альтернатива этому скрипту плагин Disable WordPress Updates. Код скрипта добавляется в файл functions.php перед ?>:

remove_action( 'wp_version_check', 'wp_version_check' );

remove_action( 'admin_init', '_maybe_update_core' );

add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );

 

remove_action( 'load-plugins.php', 'wp_update_plugins' );

remove_action( 'load-update.php', 'wp_update_plugins' );

remove_action( 'admin_init', '_maybe_update_plugins' );

remove_action( 'wp_update_plugins', 'wp_update_plugins' );

add_filter( 'pre_transient_update_plugins',create_function( '$a', "return null;" ) );

Конечно держать годами движок и плагины без обновлений не стоит. Можно раз в несколько месяцев удалять этот код, обновлять плагины и Вордпресс, а потом ставить его обратно.

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

Порой бывает, что какая-то статья на Ваш взляд является мега полезной. Но, с публикацией новых постов на блоге, она уходит вниз или вообще на другую страницу. И, зачастую, новые читатели ее не видят. Не все у нас доходят до следующих страниц. Для закрепления статьи на главной странице не нужно добавлять никаких кодов или устанавливать плагины. Разработчики WordPress все предусмотрели. Заходите в админку, на страницу «Все записи». Ищите свой классный и полезный пост, который Вы хотите закрепить на главной странице. Там, где находится ссылка «Изменить», есть другая ссылка — «Свойства». Кликайте на нее.

prikrepit-post-3

Откроются вот такие свойства. Отмечайте галочкой пункт «Прилепить запись» и кликайте на кнопку «Обновить».

prikrepit-post-2

Готово! Теперь самая важная и полезная запись будет прикреплена на главной странице.

Как скрыть отдельные страницы из меню

Еще одна фишка, о которой я хотела бы рассказать — как убрать из меню отдельные страницы. Как Вы могли заметить, оставляя первый комментарий на моем блоге, Вам показывается страница с благодарностью за первый комментарий. Но в горизонтальном меню, которое находится под шапкой такой страницы нет. А все по тому что она скрыта при помощи специального плагина Exclude Pages from Navigation.

Скачать данный плагин можно с официального сайта вордпресс — ссылка.

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

Теперь, когда заходите в редактирование любой страницы, то в правой колонке увидите следующий пункт Exclude Pages:

Exclude-Pages-2Снимите галочку, если хотите убрать данную страницу из меню и из списка страниц. Вот собственно и все по этому вопросу. Остались вопросы? Задавайте их в комментариях.

Если меню у вас конструируется через админку. Просто удалите из структуры меню ненужные страницы:

Как убрать страницу из меню плагином Exclude Pages from Navigation

Плагин для подсветки кода WP-Syntax

Особенность плагина WP-Syntax заключается в формате выводе PHP кода. Его нужно заключать в: <pre lang="LANGUAGE" line="1"> </pre>, нужно указать язык кода lang="php".

 пример работы плагина WP-Syntax

Вот таким образом можно сделать подсветку PHP кода на любой странице WordPress блога.

Как наложить копирайт на картинку автоматически при загрузке на сайт

Свой копирайт можно наложить на картинку и в редакторе картинок (например, фотошопе), а можно это сделать с помощью специального плагина Watermark Reloaded. После установки и настройки плагина, он будет автоматически накладывать указанный текстовый копирайт на загружаемые картинки.

Скачать плагин Watermark Reloaded можете отсюда. После успешной установки в разделе параметры найдите плагин Watermark Reloaded, кликните по названию, тем самым открыв страницу настроек.

Как наложить копирайт на картинку автоматически плагином Watermark Reloaded

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

Watermark RELOADED - "водяные знаки" для картинок

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

Как Вы видите ничего сложного в настройках нет. После установки плагина Watermark Reloaded копирайт на загружаемую картинку будет накладываться автоматически. Знаете альтернативные способы добавления копирайта на изображения? Пишите в комментариях.

Прописываем адреса пинг серверов для ускорения индексации публикаций

У WordPress есть замечательная функция, позволяющая оповестить поисковых роботов о том, что вы написали новую запись или внесли правки в старую. Если в специальном поле вписать список адресов Ping-серверов, после публикации статьи WordPress оповестит их сам без вашего вмешательства, и роботы поисковиков быстрее зайдут на сайт. У многих возник вопрос: «Что такое пинг сервисы?». Это сервисы обновления, которые оповещают поисковых роботов о том, что нужно быстрее проиндексировать то обновление, которое произошло на блоге.

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

На некоторых сайтах приводятся списки из десятков, а то и сотен пинг сервисов. Для своих сайтов я прописываю всего 4 адреса. Мне не нужны роботы со всего интернета, многие из них могут дать не те результаты, которых мы ожидаем. Мы получаем целевых посетителей из основных поисковых систем: Яндекс и Гугл. Их и следует уведомлять.

В админке блога, в левом боковом меню, выберите пункт «Настройки». Перейдите в подраздел «Написание».

Где прописать пинг адреса в вордпресс

В конце этой страницы вы увидите «Сервисы обновления». По умолчанию, там стоит всего один сервис http://rpc.pingomatic.com/

Основные ping адреса служб

Добавьте в него еще эти:

http://blogsearch.google.com.ua/ping/RPC2

http://blogsearch.google.ru/ping/RPC2

http://ping.blogs.yandex.ru/RPC2

Теперь ваши статьи будут индексироваться быстрее. От нескольких часов до 1-2 дней. В завершение посмотрите интересное видео от Яндекса, как происходит индексация страниц.