Почему не следует использовать query_posts() в wordpress

Параметры Кэширования

Не добавляет данные в кэш при выполнении запросов.

Cache_results(true/false)

Кэшировать ли информацию о посте.По умолчанию: true

update_post_meta_cache(true/false)

Кэшировать ли информацию о мета данных поста.По умолчанию: true

update_post_term_cache(true/false)

Кэшировать ли информацию о привязке поста к терминам и таксономиям.По умолчанию: true

lazy_load_term_meta(true/false)

Следует ли «лениво» загружать метаданные термина.
false — отключит отложенную загрузку метаданных термина и каждый вызов get_term_meta() будет обращаться в базу данных.По умолчанию: значение $update_post_term_cache

#3 Выведем 50 постов, но не будем добавлять в кэш информацию о терминах постов

Обычно эти функции использовать не нужно — кэш необходим! Однако, такой подход может пригодится в ряде случаев. Например, если нам нужно получить список заголовков постов и не нужна никакая другая информация о постах: ни о таксономиях ни о мета данных. Не загружая эту информацию мы может сохранить время на ненужных SQL запросах.

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

Настройка редакций

На данный момент, WordPress не предоставляет возможностей, чтобы отключить или изменить интервал создания резервных копий в браузере пользователя (каждые 15 секунд), но для копий, сохраняемых в базу данных сайта такие средства есть.

Для редактирования исходного кода потребуется специальный редактор, например, Notepad++. Также, потребуется FTP-клиент, например, FileZilla.

Настройка редакций с помощью файла wp-config.php

Подключаемся к сайту по FTP. Данные для доступа можно уточнить в поддержке Вашего хостинга.

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

В зависимости от потребностей, мы можем:

  • изменить интервал сохранения копий

    define( ‘AUTOSAVE_INTERVAL’, 180 ); //Интервал в секундах, по умолчанию, 60

    1 define(‘AUTOSAVE_INTERVAL’,180);//Интервал в секундах, по умолчанию, 60
  • ограничить количество создаваемых копий

    define( ‘WP_POST_REVISIONS’, 4 ); //Для записей и страниц будут хранится только 4 последние редакции

    1 define(‘WP_POST_REVISIONS’,4);//Для записей и страниц будут хранится только 4 последние редакции
  • или совсем отключить создание редакций

    define( ‘WP_POST_REVISIONS’, false );

    1 define(‘WP_POST_REVISIONS’,false);

Открываем скачанный файл и задаем значение константам в соответствии с нашими предпочтениями.

Проверяем, что кодировка файла установлена в значении UTF-8 без BOM, сохраняем файл и заливаем обратно на сервер.

Теперь для каждой записи и страницы будет хранится не более 4 редакций, а автоматическая копия будет создаваться раз в 3 минуты.

Настройка редакций с помощью php-кода

Если вариант с wp-config.php не подходит, то можно ограничить количество редакций с помощью создания небольшого php-плагина и фильтра wp_revisions_to_keep.

<?php
function dco_wp_revisions_to_keep( $revisions ) {
return 4; //Для записей и страниц будут хранится только 4 последние редакции
}
add_filter( ‘wp_revisions_to_keep’, ‘dco_wp_revisions_to_keep’ );

1
2
3
4
5

<?php

functiondco_wp_revisions_to_keep($revisions){

return4;//Для записей и страниц будут хранится только 4 последние редакции

}

add_filter(‘wp_revisions_to_keep’,’dco_wp_revisions_to_keep’);

Также, мы можем задать максимальное количество редакций в зависимости от типа записи.

<?php
function dco_wp_revisions_to_keep( $revisions, $post ) {
if ( ‘page’ == $post->post_type ) {
return 10; // Для страниц
} else {
return 4; // Для записей
}
}
add_filter( ‘wp_revisions_to_keep’, ‘dco_wp_revisions_to_keep’, 10, 2 );

1
2
3
4
5
6
7
8
9

<?php

functiondco_wp_revisions_to_keep($revisions,$post){

if(‘page’==$post->post_type){

return10;// Для страниц

}else{

return4;// Для записей

}

}

add_filter(‘wp_revisions_to_keep’,’dco_wp_revisions_to_keep’,10,2);

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

function dco_admin_notices() {
global $post;
$revisions = wp_get_post_revisions( $post->ID );
if ( isset( $post ) && wp_revisions_to_keep( $post ) <= count( $revisions ) && get_current_screen()->base == ‘post’ ) { ?>
<div class=»error»>
<p>Достигнуто максимальное количество редакций. При дальнейшем редактировании наиболее старые редакции будут автоматически удаляться.</p>
</div>
<?php
}
}
add_action( ‘admin_notices’, ‘dco_admin_notices’ );

1
2
3
4
5
6
7
8
9
10
11

functiondco_admin_notices(){

global$post;

$revisions=wp_get_post_revisions($post->ID);

if(isset($post)&&wp_revisions_to_keep($post)<=count($revisions)&&get_current_screen()->base==’post’){?>

<div class=»error»>

<p>Достигнутомаксимальноеколичестворедакций.Придальнейшемредактированиинаиболеестарыередакциибудутавтоматическиудаляться.<p>

<div>

<?php

}

}

add_action(‘admin_notices’,’dco_admin_notices’);

Создаем новый файл, помещаем в него необходимый код после открывающего тега «<?php» и загружаем файл на сервер в папку /wp-content/mu-plugins/. Если папки «mu-plugins» нет, то её нужно будет создать. Скачать файл с примерами кода.

PHP-файлы, помещенные в папку «mu-plugins», подключаются автоматически и не требуют активации. Результат работы плагина можно увидеть на странице редактирования записи или страницы.

Real Custom Post Order for WordPress

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

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

Создайте собственный порядок содержимого, перетаскивая его для следующих типов содержимого:

  • Сообщения / посты;
  • Страницы;
  • Продукты WooCommerce;
  • Все остальные пользовательские типы сообщений.

Простая и интуитивно понятная сортировка вашего контента! Установите и активируйте плагин. Перейдите к определенному типу содержимого, например к страницам и отсортируйте его в произвольном порядке, перетаскивая строки:


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

Real Custom Post Order полностью совместимым с другими плагинами. Например:

  1. Real Media Library;
  2. WooCommerce;
  3. Yoast SEO;
  4. wpSEO.

Теперь, дамы и господа, переходим к сортировке рубрик/категорий в WordPress.

Параметры Даты (времени)

Выводит посты принадлежащие определенному периоду времени.

Year(число)

4 цифры года (2013)
monthnum(число)

Номер месяцы (1 — 12)
w(число)

Неделя в году (с 0 до 53)
day(число)

День месяца (1 — 31)
hour(число)

Час (0 — 23)
minute(число)

Минута (0 — 60)
second(число)

Секунда (0 — 60)
m(число)

ГодМесяц (201306)
date_query(массив)

Параметры по которым будет отстроиться запрос. Работает на основе отдельного класса: WP_Date_Query .

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

Особенности страниц

Данный формат используют для статистического материала. Он
не меняется, а обновляется со временем. Примером являются раздела «О проекте»,
«Контакты», «Наши преимущества» и прочее. Часто они представлены категориями
основного или вторичного меню

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

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

  • отсутствие группировки по категориям и архивам;
  • исключение меток;
  • невозможность публикации в ленте;
  • принципиально разные ссылки и страницы
    отображения;
  • могут выполнять функции пунктов меню, опорных
    элементов блога.

Обойтись без страниц невозможно. Это фундамент сайта, без
которого структура будет неполной. Не оставим без внимания и функционал

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

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

WP_Query PHP код для вывода записей в разделе ПОИСКА

Для вывода WP_Query на странице поиска используем совершенно иной код:

<?php // использую совместно с функцией SearchFilter в Functions.php $mySearch =& new WP_Query(«s=$s & showposts=-1»); // Подсчет количества найденного: $num = $mySearch->post_count; echo «Найдено: «; echo $num; echo «записей»; wp_reset_query(); ?>

Для специальной обработки запроса WP_Query в файле search.php добавляем в файл functions.php своей темы следующий код:

// Сортировка по годам для search.php function SearchFilter($query) {     if ($query->is_search) {         // Ищет только в постах, но не на страницах         $query->set(‘post_type’, ‘post’);         // Происходит сортировка по году         $query->set(‘meta_key’, ‘1Year’);         // Который является значением номера         $query->set(‘orderby’, ‘meta_value_num’);         // И сортируется в обратном порядке         $query->set(‘order’, ‘DESC’);     }     return $query; } add_filter(‘pre_get_posts’,’SearchFilter’);

Он сортирует записи в категории ПОИСК по произвольному полю ГОДЫ.

Сортировка и вывод постов wordpress через плагин

Итак, устанавливаем плагин page builder by site origin и создаем страницу. Можете для тренировки назвать ее another blog. После создания страницы, переключитесь со стандартного редактора вордпрес в режим page builder чтобы получить доступ к функционалу плагина. Далее поставьте ряд на всю ширину экрана нажав на кнопку «Добавить строку» и выберите виджет из категории «Виджеты Page Builder». Называется он «Цикл записей wordpress».

Чтобы ощутить всю мощь данного плагина нужно иметь на сайте достаточное количество постов. Если у вас мало записей, то добавьте несколько тестовых, привяжите одни к каким-нибудь категориям, другие к меткам, опубликуйте записи блога от лица разных авторов и назначьте им разные даты публикации. Таким образом у вас появится возможность сделать сортировку постов wordpress по разным критериям и в полной мере оценить функционал виджета «Цикл записей».

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: