Intereting Posts
Перед удалением сообщения Как настроить WordPress для нескольких блогов, не используя multisite? вложенные divs, классы для сетки в цикле Как изменить шаблон сообщения через url? Некоторая кнопка сохранения или следующей кнопки дает ошибку в wp admin WordPress Media Manager – ограничение определенного типа mime искать только страницы, если на странице Поле пользователя wp_users user_status Автор может видеть только собственный комментарий и может Автор Никнейм URL Friendly Динамически ссылаться на последнее сообщение или моделировать запрос определенной должности в шаблоне страницы Рекомендации: пользовательское меню боковой панели темы – жесткий код или виджет? Может ли хостинг повлиять на работу плагина? Несколько таблиц wp_options для совместного использования контента через установки Как разрешить пользователям следить за сообщением, а затем разрешать администраторам отправлять по электронной почте всех пользователей, которые следовали этому сообщению?

Уменьшить / оптимизировать вызов wp_get_object_terms () при создании постоянных ссылок

Моя тема запускает цикл, который не требует условий сообщения. Однако ядро ​​Wordpress запускает функцию wp_get_object_terms на каждой итерации.

Это приводит к ненужным запросам БД, таким как:

SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category') AND tr.object_id IN (81595) ORDER BY t.name ASC 

Есть ли способ предотвратить / уменьшить или оптимизировать вызов wp_get_object_terms () только тогда, когда это абсолютно необходимо?

Я отслеживал его до get_permalink (), который вызывается внутри цикла. Наш сайт использует постоянные ссылки, которые включают категорию, что объясняет, почему она ищет категорию для каждого сообщения. Можно ли каким-либо образом оптимизировать это?

Как вы его сузили, так как ваша постоянная ссылка включает в себя категорию WP, которая пытается выяснить, как собрать их для каждой должности.

Кэш объектов

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

короткие ссылки

Если это не вариант или вы создаете ссылки в масштабе, который даже дает объектное кэширование проблемы, есть немного взломанная альтернатива. Хотя у вас есть «красивые» ссылки, это не означает, что «не очень» ссылки перестали работать.

Вы можете использовать wp_get_shortlink() для генерации последних типов ссылок ( /?p=id ), что будет намного легче на ресурсах.

Они не будут выглядеть красиво в источнике, но при посещении WP будет перенаправлять их на «красивые» версии прозрачно. Конечно, чрезмерные переадресации тоже нехорошо, но это зависит от вас, если компромисс имеет смысл для ваших обстоятельств.