background gradient
s2 - IT photo №27611

Самый быстрый поиск по Загловку в WordPress

Функция get_page_by_title() устарела, и WordPress предлагает использовать медленный запрос WP_Query с параметром s.

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

function find_post_by_title_and_taxonomy($title, $taxonomy, $term_id, $post_type = 'items') {
  global $wpdb;

  // Подготавливаем SQL-запрос
  $query = $wpdb->prepare("
    SELECT p.ID
    FROM {$wpdb->posts} p
    INNER JOIN {$wpdb->term_relationships} tr ON p.ID = tr.object_id
    INNER JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
    INNER JOIN {$wpdb->terms} t ON tt.term_id = t.term_id
    WHERE p.post_title = %s
    AND p.post_type = %s
    AND p.post_status = 'publish'
    AND tt.taxonomy = %s
    AND t.term_id = %d
  ", $title, $post_type, $taxonomy, $term_id);

  $post_id = $wpdb->get_var($query);
  return $post_id;
}

Чем SQL лучше?

Во-первых, наш подход работает напрямую с базой данных, используя низкоуровневый SQL-запрос. Это позволяет нам избежать всех накладных расходов, связанных с использованием WP_Query. Во-вторых, мы дополнительно защитили наш запрос от всех известных уязвимостей, таких как SQL-инъекции, и обеспечили, чтобы поиск был максимально безопасным.

Почему этот код так эффективен?

  1. Скорость. Мы работаем напрямую с базой данных, минуя лишние слои абстракции, которые могут замедлить выполнение запроса. Это особенно важно на крупных сайтах с множеством записей.
  2. Безопасность. Код защищен от SQL-инъекций благодаря использованию $wpdb->prepare(), которая корректно экранирует все передаваемые параметры. Также в коде предусмотрена защита от возможных XSS-атак и других угроз, связанных с манипуляцией пользовательскими данными.
  3. Гибкость. Мы добавили возможность задавать тип записи с помощью переменной $post_type. Это значит, что вы можете искать не только посты, но и кастомные типы записей.

Как это работает?

Вы просто вызываете функцию find post by title and taxonomy() и передаете в нее название записи, таксономию, ID термина и опционально тип записи. В результате вы получите ID записи, которая соответствует заданным условиям.

Итог

Этот способ является самым быстрым и безопасным для поиска записи по заголовку в WordPress. Воспользуйтесь им, чтобы оптимизировать производительность вашего сайта и обезопасить его от угроз. Забудьте о медленных и устаревших методах поиска и переходите на новый уровень эффективности!

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

P.S Если вам интересно посмотреть на сайт с миллионом записей: arz-wiki.com

Добавить комментарий

Навигация:

Похожие

1727257446_ms_elementor_pro_1_тыс_изображений_найдено_в_Яндекс_К-min - IT photo №28572
29 1
25 Сент 2024

Как работает хук new_record в плагине Elementor

Разберем action new_record и список всех данных с примерами кода которые можно получить из $record. Хук elementor_pro/forms/new_record вызывается при успешной отправке формы, созданной с помощью Elementor Pro. Он позволяет разработчикам вмешиваться в процесс обработки формы, добавляя пользовательскую логику или изменяя данные, прежде чем они будут сохранены или отправлены по email. Хук передает два параметра: $record […]

Elementor
fatores-de-ranqueamento-seo-2 - IT photo №28386
52 1
14 Апр 2024

PHP регулярка для удаления блока вместе с содержимым

В этой заметке покажу вам PHP код с использованием регулярных выражений для удаления блока вместе с его содержимым. Этот код выполняет следующие действия: preg_replace('/<li class="js-oglav-after js-oglav-psy".*?<\/li>/is', '', $content); — Удаляет все блоки <li> с классом "js-oglav-after js-oglav-psy" вместе со всем их содержимым из переменной $content. preg_replace('/<div style="padding: 30px 0 0 0".*?<\/div>/is', '', $content); — Удаляет […]

PHPSEOWordpress
1713081126_ms_chrome_tKr95u9sMx-min - IT photo №28384
46
14 Апр 2024

Код для удаления emoji в wordpress

WordPress по умолчанию включает поддержку эмодзи, для ускорения сайта их можно удалить. В этой статье мы рассмотрим, как удалить эмодзи в WordPress.   Для удаления эмодзи мы можем использовать несколько хуков и фильтров. Добавьте этот код в файл functions.php вашей темы или в плагина: Что делает код? remove_action('wp_head', 'print_emoji_detection_script', 7); — Удаляет скрипт, который обнаруживает […]

PHPWordpress
1713080563_ms_chrome_pepnRwEuKf-min - IT photo №28380
49
14 Апр 2024

Функция get_gravatar чтобы получить аватарку с gravatar в PHP.

Для вывода картинки с граватара нужно создать функцию, которая будет генерировать URL аватарки на основе email адреса пользователя. Вот пример такой функции: Разберем эту функцию: $email — email адрес пользователя, для которого мы хотим получить аватарку. $size — размер аватарки в пикселях (от 1 до 2048). $default — URL изображения, если не найдена аватарка на […]

PHPWordpress
wpml-min - IT photo №28373
82 3
10 Апр 2024

Полезные функции для работы с WPML

Если не найдете ответ — пишите комментарий, разберу вашу проблему и добавлю решение! Сменить текущий язык сайта в коде После действий на новом языке, не забудьте вернуть прежний язык при помощи кода в следующей подсказке. Получить текущий активный язык Используйте перед изменением текущего языка в циклах, чтобы вернуть его в конце. Получить оригинальный язык Получить […]

PHPWPML
ms_chrome_WB8ld8arlE - IT photo №28363
28 2
29 Марта 2024

Что делать если не выводится title в WordPress?

Проверьте чтобы в вашей теме, в header.php был вставлен код <?php wp_head(); >  перед закрывающим тегом </head> Как включить <title> в wordpress? Для подключения заголовков страниц, добавьте поддержку title tag в add_theme_support(). Пример как это сделать: Зайдите в function.php вашей темы и добавьте этот код: Вставив этот код, вы подключите вывод заголовка страницы в мета данных.

PHPWordpress