Как добавить мета-теги
на сайт WordPress. 2 способа
При сканировании вашего ресурса поисковые системы стараются собрать как можно больше информации. Помимо заголовка, текста, URL-адреса и других элементов на странице, они сканируют данные, которые не видны внешнему пользователю, то есть мета-теги.
Мета-теги могут содержать такие данные как: мета-описания, имя автора, тип документа, язык, авторские права. Важно отметить, что мета-теги не влияют на ранжирование вашего сайта , поэтому необходимо уделить особое внимание ключевым словам.
WordPress по умолчанию не содержит данные мета-тегов, поэтому вам необходимо добавить их самостоятельно. Вы можете сделать это вручную или с помощью плагинов WordPress. Ниже рассмотрим подробнее каждый способ.
Как добавить мета-теги в WordPress вручную
Возьмем для примера следующие мета-теги:
Для того, чтобы их добавить, выполните следующие шаги:
- Войдите в панель управления вашей учетной записью и откройте диспетчер файлов;
- Откройте папку public_html в левой части экрана;
3. Нажмите на папку wp-content;
4. Найдите папку themes;
- Откройте папку с названием вашей темы;
- Щелкните правой кнопкой мыши по шаблону header.php и выберите «Правка» в выпадающем меню;
- Добавьте свои мета-теги в раздел head (между тегом );
- Сохраните изменения.
Если ваш сайт охватывает более широкий круг тем, и вам необходимо добавить уникальные мета-теги для каждого поста — используйте плагины.
Как добавить мета-теги в WordPress с помощью плагина
Рассмотрим добавление мета-тегов на примере плагина Meta Tag Manager . Если вы используете другой плагин, ознакомьтесь с его документацией на сайте разработчика.
- Войдите в панель управления WordPress;
- Нажмите «Плагины» > «Добавить новый» ;
3. Найдите «Meta Tag Manager» и нажмите «Установить сейчас» > «Активировать» ;
- Вы автоматически попадете во вкладку со всеми установленными плагинами на сайте. В верхней части вы увидите сообщение с подтверждением того, что плагин активирован;
5. Перейдите в «Настройки» > «Менеджер мета-тегов» ;
6. Теперь вы можете создавать глобальные мета-теги и назначать их различным областям на вашем сайте. Если вы хотите добавить мета-тег автора для всех сообщений на сайте, то используйте следующие параметры:
7. Далее переключитесь на страницу «Общие параметры» и убедитесь, что посты, страницы и медиа указаны в поле с пометкой «Поддержка типов записей» . Таким образом, при редактировании этих элементов вы сможете добавить мета-теги, которые будут отображаться только для них;
8. При таком редактировании Meta Tag Manager отображается в виде отдельного мета-окна, как показано ниже.
На слайде вы увидите, как выглядит добавление мета-тегов описания, уникальных для конкретного поста. Если следовать этому процессу, то вы можете добавить уникальные мета-теги для всех ваших постов и страниц.
Как правильно составить мета-теги Title и Description
Author: Анатолий Ситников
Метатеги (англ. meta tags) — (X)HTML-теги, предназначенные для предоставления структурированных метаданных о веб-странице. Как правило, указываются в заголовке (теге ) (X)HTML-документа.
Содержание страницы: «Как правильно составить мета-теги Title и Description»:
- Купить написание мета-тегов и составление сем. ядра
- Что такое мета теги
- Что такое мета тег Title
- Требования к написанию Title
- Что такое мета тег Description
- Требования к написанию Description
- Пример написания мета тегов №1
- Пример написания мета тегов №2
- Пример написания мета тегов №3
- Выводы
Внимание! Далее будет инструкция как написать мета-теги, но этого не достаточно, для написания нужно иметь семантическое ядро сайта. Купить семантическое ядро (подбор и распределение ключевых слов) и написание мета-тегов можно у SEO специалистов Site Ok:
Семантическое ядро и написание мета-тегов M
Цена за 1 страницу: $4.99
Подберем ключевые слова для страниц категорий или страниц услуг: 50 страниц
Пишем мета-теги: да
Подберем фраз: ~1000
Делаем правильную структуру страниц: да
ТЗ для SEO текстов: да
Семантическое ядро и написание мета-тегов L
Цена за 1 страницу: $3.99
Подберем ключевые слова для страниц категорий или страниц услуг: 100 страниц
Пишем мета-теги: да
Подберем фраз: ~2000
Делаем правильную структуру страниц: да
ТЗ для SEO текстов: да
Семантическое ядро и написание мета-тегов XL
Цена за 1 страницу: $2.99
Подберем ключевые слова для страниц категорий или страниц услуг: 200 страниц
Пишем мета-теги: да
Подберем фраз: ~4000
Делаем правильную структуру страниц: да
ТЗ для SEO текстов: да
Данная статья будет полезной в случае, если Вы задавали в Google следующие вопросы:
— Что такое мета тег Title;
— Что такое мета тег Description;
— Как правильно ставить мета теги для страниц;
— Как правильно прописать тайтл;
— Как правильно написать мета-теги;
— Как составить мета-описание и мета-заголовок;
— Что такое мета теги;
— Сколько символов использовать в title;
— Какой длины должен быть title;
— Какой длины должен быть description.
Что такое мета теги
Мета теги — (англ. meta tags) — HTML-теги страницы, необходимы для предоставления структурированных мета данных элетронного документа — страницы сайта. Обычно, указываются в заголовке (теге ). Используются поисковыми системами для определения информации на страницы для учета этих данных при ранжировании в поиске.
Вот так мета-теги выглядят в коде страницы:
Что такое мета тег Title
Мета тег Title — это заголовок страницы в браузере, который отображается в выдаче поисковых систем. Мета тег Тайтл учитывается поисковой системой при ранжирование сайтов, считается основным показателем определения релевантности страницы к поисковым запросам.
Вот так он выглядит в поисковой выдаче:
Требования к написанию мета-тегов title:
- Title на странице в коде должен быть указан в обязательном порядке;
- Оптимальный размер заголовка title должен быть от 60-ти до 70-ти знаков;
- Писать название сайта в title не обязательно, так как поисковые системы учитывают название домена;
- В тайтле должны содержаться поисковые запросы релевантные по отношению к содержанию страницы;
- Высокочастотные запросы необходимо прописывать вначале заголовка;
- В коде страницы title должен быть размещен в разделе HEAD;
- Недопустимо повторение одного и того же мета тега title на двух разных страницах;
- Не рекомендуется использовать более 1 раза одно и тоже слово.
Что такое мета тег Description
Мета тег description — краткое описание страницы сайта в браузере, которое отображается под мета-тегом title в выдаче поисковых систем, но на странице сайта он не виден посетителям.
Учитывается поисковыми машинами для определения содержания страницы с целью использования алгоритмом в распределении сайтов в результатах поиска. В коде страницы расположен между тегами .
Вот так выглядит в поисковой системе Google:
Требования к написанию мета тега description:
- Длина мета тега description не должна превышать 300 знаков, оптимальный размер 160-290 символов;
- Правильный мета тег дескрипшн должен содержать ключевые слова, которые относятся к этой странице;
- Высокочастотные ключевые запросы располагайте вначале, избегайте повторов одного и того же слова;
- Описание description должно быть составлено в виде продающего и краткого объявления, которое передаст пользователю смысловую нагрузку страницы;
- На каждой странице сайта мета тег description должен быть уникальным, не допускается его повторение на других страницах сайта;
- Мета теги title и description должны отличаться друг от друга;
- Используйте призывы к действию, а также покажите ваши преимущества и умолчите о недостатках.
Как составлять правильно мета-теги title и decription
Для того, что бы правильно составить мета-теги необходимо иметь список ключевых запросов, под которые Вы будете прописывать мета заголовок и описание для каждой страницы Вашего сайта.
И так, представим, что у нас есть ключевые слова для всех страниц сайта.
Пример №1. Title и Decription страницы сайта услуг по ремонту телефонов в Киеве
Список ключевых слов для этой страницы:
ремонт телефона киев
ремонт телефона цены
ремонт телефонов заказать
ремонт телефонов недорого
услуги ремонт телефона
ремонт телефонов с гарантией
ремонт телефонов позняки
ремонт телефона левый берег
Результат — мета тег Title:
Ремонт телефонов — заказать ремонт телефона недорого | Киев | Цены
Примечание. Слово «Позняки» в title нужно использовать в случае, если у Вас есть пункт приему телефонов на позняках.
В идеале, под каждый район можно создать посадочную целевую страницу и прописать для нее мета-тег title. Пишите в title только релевантные содержанию страницы слова.
Результат — мета тег Description:
Заказать ремонт телефонов с гарантией по лучшей цене в Киеве можно у нас. Заберем, починим, привезем. Недорого с гарантией 90 дней. Скидки, если приведете друга. Жмите прямо сейчас!
Примечание. В description нужно использовать запросы, которые не влезли в title и обязательно необходимо продублировать слова из главный поисковых фраз.
Напишите призыв к действию в конце — жмите, смотрите прямо сейчас, заказывайте, перейдите и так далее.
Пример №2. Title и Decription страницы сайта по продаже диванов
Ключевые слова для этой страницы:
купить диван интернет магазин
диваны от фабрики
лучшие диваны интернет магазин
Результат — мета тег Title:
Диваны — купить диван в интернет магазине | Лучшие Цены | Фабрика в Киеве
Результат — мета тег Description:
Купить и заказать диван в интернет магазине от фабрики по самой низкой цене можете здесь. Доставим бесплатно. Цена производителя. Все в наличии на складе. Делаем и на заказ. Гарантия. Заходи — выбирай!
Пример №3. Title и Decription страницы сайта по услуг похудению
Поисковые фразы для этой страницы:
услуги диетолога заказать
Результат — мета тег Title:
Диетолог — хороший врач в Киеве | Не знаете как похудеть? | Услуги и Цены
Результат — мета тег Description:
Хороший диетолог поможет быстро похудеть и сбросить лишний вес. У нас лучшие цены. Опытный врач диетолог Шляпа Сергей Иванович. Сертификаты. Гарантия результата. Заказать красивое тело в 2 клика — жмите!
Выводы:
- Чтобы написать и правильно составить title и description необходимо иметь релевантный список ключевых слов;
- Длина title — 60-70 символов, description — 160-290 символов;
- Мета-теги должны быть уникальными для каждой страницы сайта;
- В мета-тегах необходимо писать слова относящихся к данной странице сайта;
- Составить их правильно — проще простого, если Вы прочитали эту статью.
Статья оказалась полезной?
Будем благодарны за лайки и репосты — расскажите друзьям чему Вы научились! (кнопки соц сетей снизу страницы).
Мета-данные в WordPress
Под словом «Метаданные» в WordPress скрывается огромная работа и потрясающая логика, которую можно ругать и хвалить одновременно, но одного у метаданных не отнять — они очень удобны. При этом разобраться в принципе их работы очень просто.
Читайте также, как устроены таксономии в WordPress
Читайте также, как устроенны записи в WordPress
Оглавление:
- Что такое метаданные?
- Таблицы метаданных в Базе Данных WP
- Скрытые (защищенные) метаполя
- Функции метаданных
- Очистка значений метаполей при сохранении
- Регистрация метаполей
- Метаполя для свой таблицы
- Производительность и метаданные
- Как включить произвольные поля в Gutenberg?
Что такое метаданные?
Метаданные в WordPress — это данные, которые дополняют основные данные. Их еще называют метаполя, произвольные поля, кастомные поля. По-другому можно сказать, что метаданные — это дополнительная таблица в базе данных, которая расширяет основную таблицу.
- у записи (поста) есть основные данные: контент, заголовок, . и могут быть дополнительные данные (метаданные), например число просмотров записи, ID миниатюры, ID редактировавшего юзера, и т.д.
- у пользователя есть основные данные — это данные из таблицы wp_users : логин, ссылка на сайт, email, . и метаданные: биография, ссылка на соц. профиль, настройки админ панели.
Таблицы метаданных в Базе Данных WP
По умолчанию в WordPress существует 5 таблиц для разных объектов (записи, комментарии, пользователи, элементы таксономии, сайты):
wp_postmeta Записи — таблица wp_postmeta для wp_posts . Сюда записываются привычные в WordPress «произвольные поля поста» wp_usermeta Пользователи — таблица wp_usermeta для wp_users . Дополнительные данные о пользователе. wp_termmeta(С WP 4.4) Термины (элементы таксономий) — таблица wp_termmeta для wp_terms . Дополнительные данные для элементов таксономии. wp_commentmeta Комментарии — таблица wp_commentmeta для wp_comments . Метаданные для каждого комментария. wp_sitemeta(для мультисайт сборки) Сайты (главный сайт сети в мультисайт) — таблица wp_sitemeta для wp_site . Опции основного сайта сети.
Все метаданные имеют одинаковую логику и таблицы одинаковой структуры в базе данных.
Как можно видеть, структура всех таблиц одинаковая, разница только в названии основных полей. Связываются они с основной таблицей через второе поле (оно у всех таблиц называется по-разному: post_id , user_id , comment_id , term_id ). Основной ключ (желтый) обычно не используется и нужен только для точной идентификации конкретной строки в таблице (это иногда нужно, потому что удобно). Запросы как правило работают по трем полям: 2, 3, 4.
По умолчанию WordPress активно использует таблицы метаданных для записей и для пользователей. Менее активно используется таблица метаданных для комментариев — туда при помещении комментария в корзину записывается время удаления (если корзина отключена, то таблица не используется). И совсем не используется таблица метаданных для терминов.
Все таблицы метаданных отлично подходят для расширения возможностей движка. И их активно используют разработчики плагинов и тем.
Таблица метаданных для терминов, была добавлена только в версии 4.4 специально для того, чтобы разработчикам было куда сохранять нужные данные этих самых терминов.
Скрытые (защищенные) метаполя
В WordPress есть такое понятие как скрытые метаполя. Это поля, название которых (значение meta_key ) начинается с нижнего подчеркивания _ . Так принято называть метаполя, которые используются для нужд кода и не должны изменяться вручную.
В админке, для постов в блоке «Произвольные поля» скрытые метаполя не отображаются, а значит их нельзя изменить. Так, например, при редактировании записи в метаполе _edit_lock записывается метка времени и ID пользователя, который редактирует запись. Благодаря этому мы можем видеть что запись в текущий момент редактируется другим пользователем. Или другой пример, ID картинки-вложения, которая устанавливается как миниатюра записи, сохраняется в метаполе _thumbnail_id .
Для выяснения является ли метаполе скрытым есть специальная функция: is_protected_meta( $meta_key, $meta_type ) .
Чтобы сделать любое метаполе скрытым, есть хук is_protected_meta:
// Скроем некоторые метаполя add_filter( ‘is_protected_meta’, ‘my_protected_custom_fields’, 10, 2 ); function my_protected_custom_fields( $protected, $meta_key )
Функции метаданных
Почти все функции метаданных работают на основе четырех базовых функций. На основе этих четырех функций по сути построено API работы со всеми метаданными в WordPress.
- get_metadata( $meta_type, $object_id, $key, $single )
- update_metadata( $meta_type, $object_id, $key, $value, $prev_value )
- delete_metadata( $meta_type, $object_id, $key, $value, $delete_all )
- add_metadata( $meta_type, $object_id, $key, $value, $unique )
- get_post_meta( $post_id, $key, $single )
- add_post_meta( $post_id, $key, $value, $unique )
- update_post_meta( $post_id, $key, $value, $prev_value )
- delete_post_meta( $post_id, $key, $value )
- delete_post_meta_by_key( $key ) — удаляет все метаполя у всех постов по имени поля.
- get_post_custom( $post_id ) — получает массив всех метаполей текущего поста (включая скрытые).
- the_meta() — выводит значения метаполей записи в списке
- (без скрытых).
- get_user_meta( $user_id, $key, $single )
- add_user_meta( $user_id, $key, $value, $unique )
- update_user_meta( $user_id, $key, $value, $prev_value )
- delete_user_meta( $user_id, $key, $value )
- get_the_author_meta( $field ) — получает значение указанного метаполя текущего юзера.
- get_comment_meta( $comment_id, $key, $single )
- add_comment_meta( $comment_id, $key, $value, $unique )
- update_comment_meta( $comment_id, $key, $value, $prev_value )
- delete_comment_meta( $comment_id, $key, $value )
Для таксономий (терминов):
- get_term_meta( $term_id, $key, $single )
- add_term_meta( $term_id, $key, $value, $unique )
- update_term_meta( $term_id, $key, $value, $prev_value )
- delete_term_meta( $term_id, $key, $value )
- has_term_meta( $term_id ) — получает массив всех метаданных термина (получит все поля таблицы).
Получить значения всех метаполей объекта можно с помощью функции get_***_meta() . Для этого нужно указать только первый параметр: id объекта:
$metas = get_post_meta( 76 ); /* Array( [_edit_lock] => Array [0] => 1517175359:1 [_edit_last] => Array [0] => 1 [views] => Array [0] => 10164 [_thumbnail_id] => Array [0] => 9556 [photo] => Array [0] => https://wp-kama.ru/wp-content/uploads/2010/03/Quicktags-API.png [1] => https://wp-kama.ru/wp-content/uploads/2017/07/image.png ) */
Очистка значений метаполей при сохранении
Значение любого метаполя можно очистить через фильтр: sanitize_(type)_meta_(meta_key).
Этот фильтр срабатывает всегда при добавлении или обновлении метаполя.
Все варианты фильтра, если указать первый изменяемый параметр:
- sanitize_post_meta_(meta_key)
- sanitize_user_meta_(meta_key)
- sanitize_comment_meta_(meta_key)
- sanitize_term_meta_(meta_key)
Пример использования фильтра
Допустим, у нас есть метаполе пользователя my_history (моя история). В это поле пользователь может писать какой-то текст, но в нем нельзя использовать HTML теги. Чтобы быть уверенным наверняка, что туда не попадут эти самые теги, лучше всего очистить значение поля перед сохранением его в базу данных:
add_filter( 'sanitize_user_meta_'.'my_history', function( $meta_value )< return wp_strip_all_tags( $meta_value ); >);
Регистрация метаполей
С версии 4.6 в WordPress появилась возможность дополнительно описывать каждое метаполе. Делается это через функцию register_meta().
Регистрация метаполя, нужна для использования его в разных API, например для REST API (полная поддержка REST API ожидается с версии WP 5.0).
Поведение register_meta() чем-то походе на register_post_type() — данные аналогично сохраняются в глобальную переменную $wp_meta_keys . Это позволяет получать данные метаполя в любое время при написании кода.
Пример регистрация метаполя
Зарегистрируем метаполе для поста с функциями доступа и очистки:
register_meta( 'post', 'bookname', [ 'type' => 'string', 'description' => 'Название книги', 'single' => true, 'sanitize_callback' => function( $meta_value, $meta_key, $object_type )< return wp_strip_all_tags( $meta_value ); // удалим html теги >, 'auth_callback' => function( $false, $meta_key, $postID, $user_id, $cap, $caps )< // запретим создание и редактирование этого метаполя для всех кроме админа return current_user_can('manage_options'); >, 'show_in_rest' => false, ] );
В результате, если зайти на страницу редактирования записи и попробовать там создать метаполе bookname :
- Если вы вошли как админ — метаполе создастся.
- Если как редактор, автор и т.д. — вы не сможете создать метаполе.
За это отвечает параметр auth_callback
Далее, если в значении указать строку с HTML тегами, при обновлении они будут вырезаны.
За это отвечает параметр sanitize_callback
Параметры: type , description , single , show_in_rest в версии WP 4.6, носят только информационный характер. А с версии WP 5.0 используются в REST API. Например, если указать show_in_rest=true , то метаполе можно будет редактировать через REST API.
Остальные функции связанные с регистрацией метаполей:
- registered_meta_key_exists()
- unregister_meta_key()
- get_registered_meta_keys()
- get_registered_metadata()
Метаполя для свой таблицы
API метаполей позволяет создать свою таблицу метаполей для любой таблицы. Рассмотрим на примере.
Допустим у нас есть таблица my_books :
Создаем для нее таблицу метаданных my_bookmeta :
Для создания таблицы метаданных, нужно один раз запустить написанную нами функцию create_book_meta_table() . Код функции:
## register_activation_hook( __FILE__, 'create_book_meta_table'); ## Функция создания таблицы метаданных. Нужно запустить один раз. Можно повесить на register_activation_hook() function create_book_meta_table()< global $wpdb; $collate = ''; if ( ! empty($wpdb->charset) ) $collate ; if ( ! empty($wpdb->collate) ) $collate . ; /* * Indexes have a maximum size of 767 bytes. Historically, we haven't need to be concerned about that. * As of 4.2, however, we moved to utf8mb4, which uses 4 bytes per character. This means that an index which * used to have room for floor(767/3) = 255 characters, now only has room for floor(767/4) = 191 characters. */ $max_index_length = 191; $main_field = 'book_id'; // название главной колонки, должно выглядеть как: $meta_type . '_id' $table_name = 'my_bookmeta'; $wpdb->query( "CREATE TABLE $table_name ( meta_id bigint(20) unsigned NOT NULL auto_increment, $main_field bigint(20) unsigned NOT NULL default '0', meta_key varchar(255) default NULL, meta_value longtext, PRIMARY KEY (meta_id), KEY $main_field ($main_field), KEY meta_key (meta_key($max_index_length)) ) $collate;" ); >
Название главной колонки, должно выглядеть как: $meta_type . ‘_id’ . Так оно собирается в функциях: *_metadata() .
Зарегистрируем функции для работы с метаданными book :
function add_book_meta( $id, $meta_key, $meta_value, $unique = false ) < return add_metadata( 'book', $id, $meta_key, $meta_value, $unique ); >function delete_book_meta( $id, $meta_key, $meta_value = » ) < return delete_metadata( 'book', $id, $meta_key, $meta_value ); >function get_book_meta( $id, $meta_key = », $single = false ) < return get_metadata( 'book', $id, $meta_key, $single ); >function update_book_meta( $id, $meta_key, $meta_value, $prev_value = » )
Теперь мы можем использовать функции для управления метаданными, которые будут работать в точности, как работают метаданные в WordPress. Сюда входит и кэширование метаданных, и всевозможные хуки.
// добавим данные в таблицу метаданных update_book_meta( 12, 'author_name', 'Циркон' ); // получим значение метаполя get_book_meta( 12, 'author_name', 1 ); //> Циркон // получим значения всех метполей get_book_meta( 12 ); //> вернет массив
Построение запроса с использованием метаданных
В WordPress очень удобно можно выбирать или сортировать строки основной таблицы, на основе параметров метаданных. Например, в WP_query() это делается через параметр meta_query .
Прикрутить такой же функционал к нашей таблице можно с помощью класса WP_Meta_Query<>. Напишу, для примера функцию получения книг, с возможностью выборки по метаданным:
// установим таблицы в $wpdb global $wpdb; $wpdb->books = "my_books"; $wpdb->bookmeta = "my_bookmeta"; ## Пример функции для получения книг, с возможностью выборки по метаданным function get_books( $args = array() ) < global $wpdb; $default = [ 'book_id' =>0, 'name' => '', 'content_search' => '', // понимаемые мета-параметры 'meta_key' => '', 'meta_value' => '', 'meta_value_num' => '', 'meta_compare' => '', 'meta_query' => array(), ]; $args = array_merge( $default, $args ); $WHERE = array(); $JOIN = $ORDER_BY = $LIMIT = ''; if( $args['book_id'] )< // 'my_books.' нужно потому что поле назвается одинаково у главной и у мета таблицы $WHERE[] = $wpdb->prepare('my_books.book_id = %d', $args['book_id'] ); > if( $args['name'] )< $WHERE[] = $wpdb->prepare('name = %s', $args['name'] ); > if( $args['content_search'] )< $WHERE[] = $wpdb->prepare('content LIKE %s', '%'. $wpdb->esc_like( $args['content_search'] ) .'%' ); > // мета запрос if( $args['meta_query'] || $args['meta_key'] )< $metaq = new WP_Meta_Query(); $metaq->parse_query_vars( $args ); // парсим возможные мета-параметры из параметров $args // первый параметр 'book' должен быть началом свойства $wpdb->bookmeta без суффика 'meta' // Т.е. мы указываем 'book' к нему добавляется 'meta' и свойство 'bookmeta' должно существовать в $wpdb // см. https://wp-kama.ru/function/_get_meta_table $mq_sql = $metaq->get_sql( 'book', $wpdb->books, 'book_id' ); $JOIN = $mq_sql['join']; // INNER JOIN my_bookmeta ON ( my_books.book_id = my_bookmeta.book_id ) $WHERE[] = $mq_sql['where']; // AND ( ( my_bookmeta.meta_key = 'author_name' AND my_bookmeta.meta_value = 'Циркон' ) ) > $WHERE = 'WHERE '. implode( ' AND ', $WHERE ); /* для сортировки по метаполям понадобится $metaq->get_clauses() Array( [metasort] => Array( [key] => author_name [value] => Циркон [compare] => = [alias] => my_bookmeta [cast] => CHAR ) ) пример смотрите в: https://wp-kama.ru/function/WP_Query::parse_orderby */ $ORDER_BY = 'ORDER BY name ASC'; $fields = '*'; if( isset($metaq) && $metaq->has_or_relation() ) $fields = "DISTINCT $fields"; $res = $wpdb->get_results( "SELECT $fields FROM $wpdb->books $JOIN $WHERE $ORDER_BY $LIMIT" ); return $res; >
Проверим функцию, сделаем запрос:
// запрос на получение книг $books = get_books([ 'meta_key' => 'author_name', 'meta_value' => 'Циркон', ]); // или так $books = get_books([ 'meta_query' =>[ 'metasort' => [ 'key' => 'author_name', 'value' => 'Циркон', ] ] ]); print_r( $books ); /* Получим: Array( [0] => stdClass Object( [book_id] => 12 [name] => Вишневый сад [content] => Содержание книги . [meta_id] => 2 [meta_key] => author_name [meta_value] => Циркон ) ) */
Повторюсь, теперь выборку по метаполям можно делать любой сложности, все что позволяет делать WP_Meta_Query<>, оно же meta_query в WP_Query.
Пример выборки посложнее:
$args = array( 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'author_name', 'value' => 'алекс', 'compare' => 'LIKE' ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN' ) ) ); $books = get_books( $args );
Производительность и метаданные
Запросы на основе meta_query открывают огромные возможности, но у этого всего есть обратная сторона — не самая лучшая производительность, особенно если составляются сложные запросы и обрабатывается большое количество данных.
Слабым звеном в метаданных является поле meta_value любой таблицы метаданных (например таблицы wp_postmeta ). У meta_value нет и не может быть индекса, потому что поле имеет тип LONGTEXT , чтобы можно было хранить в ней любые данные: числа, тексты любой длинны, сериализованные массивы и т.д. Также индексирование невозможно, потому что при построении запроса, например, сортировка по метаполю, где хранятся числа, значения превращаются из строк в числа функцией CAST() и только потом сортируются. Такой подход «убил» бы индекс, даже если бы он там был.
Из-за вышеописанных особенностей не всегда правильно использовать метаполя для хранения данных, по которым затем будет выборка или сортировка, хотя в большинстве случаев они подходят хорошо.
Всегда проверяйте запросы в реальных условиях, смотрите на время выполнения и то, как меняется это время от количества данных и параметров запроса. Если запросы стали медленными, то пришло время как-то их кэшировать или подключать внешнюю систему индексирования, например Sphinx или Elasticsearch.
Если ожидается хранить большие объемы данных, по которым нужна будет выборка и сортировка, то возможно стоит создавать специальную таблицу под такие данные. Под большими объемами данных я имею ввиду количество значений одного мета-ключа от 20000 и более. С таким объемом данных в метаполях запросы уже будут заметно тормозить и без кэширования (которое не всегда подходит) или других надстроек уже будет не обойтись.
Как включить произвольные поля в Gutenberg?
- Создаем новые поля для комментариев WordPress
- Kama_Post_Meta_Box: создаем метаполя для записей
- Хук: (taxonomy)_edit_form_fields
- Custom Fields vs. Custom Taxonomies, when to (not) use? (англ.)
WP Meta SEO : мета-заголовок, мета-описание WordPress Plugin
Улучшение SEO и репутации вашего сайта WordPress легче сказать, чем сделать. Среди множества страниц и сообщений выявление проблем и точек улучшения может быть скучным занятием. WP Meta SEO и его аддон — это сопутствующее расширение для вашего веб-сайта WordPress, позволяющее быстро находить ошибки в обработке SEO и, таким образом, исправлять их. Чтобы узнать больше о функциях SEO, вернитесь на страницу WP META SEO
Массовое издание всей вашей мета-информации WordPress
Одна из выдающихся функций WP Meta SEO — это новый подход к редактированию и проверке метаданных контента в кратчайшие сроки и откуда угодно: со страницы, из массового редактора или из панели инструментов SEO.
Редактор метаинформации позволяет вам редактировать в одной сетке:
- Мета-заголовки WordPress
- Мета описания WordPress
- Ключевые слова
- Атрибут Follow — NoFollow
- Индекс — Атрибут NoIndex
Мета-заголовки и описания Edition Made Easy
Интерфейс редакции получил молниеносное сохранение AJAX, очень полезное для оптимизации клиентского веб-сайта в кратчайшие сроки. Когда вы печатаете и перемещаетесь от поля к полю, вы увидите колесо прогресса рядом с измененным элементом. В то же время вы можете продолжать улучшать метаданные вашего сайта WordPress, будучи уверенными в том, что после сохранения изменений вы будете получать уведомления!
WP Meta SEO позволяет копировать заголовки в поля мета-заголовков. Вы можете скопировать все заголовки контента или только выбранные сообщения, страницы или пользовательские типы сообщений. Изменения вносятся только в пустые поля мета-заголовка, чтобы вы не потеряли контент, который вы настроили самостоятельно.
OnPage SEO Контент Контролер
WP Meta SEO также значительно облегчил оптимизацию страниц. Теперь под вашим контентом вы получите оценку эффективности вашего SEO, включая советы о том, что пошло не так.
Процентная оценка основана на семи различных факторах. Во-первых, публикация или страница оценивается по тому, появляются ли слова в заголовке также в заголовках и в содержании соответственно. Предупреждение также выдается, если заголовок контента не совпадает с URL-адресом страницы или сообщения.
Метаданные неоценимы, когда речь заходит о SEO, и следующие показатели оценки основаны на наличии мета-заголовка и описания. Последние два фактора связаны с изображениями. В частности, они гарантируют, что не будет изображений, размер которых неправильно изменен с помощью HTML, и что все изображения в вашем контенте имеют мета-заголовок или альтернативное описание.
Сделайте SEO доступным
Советы можно получить, наведя курсор на различные факторы, что даст вам последний толчок для повышения рейтинга вашего веб-сайта на WordPress.
Чуть ниже индикатора оценки вы также можете предоставить инструкции по отслеживанию и индексации для роботов поисковых систем при работе с вашим контентом. Выделиться среди конкурентов — это рутинная работа, не говоря уже о утомительной задаче поиска и изоляции проблем SEO. WP Meta SEO и надстройка для WordPress — это ответ на эти проблемы с рекомендациями, которые позволяют сосредоточить внимание на проблемах и с легкостью их исправить.
DoFollow | NoFollow WordPress Content
Следующее введение вступает в игру, если вы хотите, чтобы некоторые ссылки были исключены из подписки и, таким образом, влияли на SEO-рейтинг их контента. В этих случаях WP Meta SEO позволяет включать инструкции для nofollow или dofollow . Эти инструкции могут быть предоставлены при редактировании самих сообщений или страниц или на той же мета-странице контента. Добавление инструкций — это просто переход к странице или публикации, которую вы хотите изменить, и включение или выключение следующих инструкций.
Метаданные на приборной панели с уведомлением по электронной почте в реальном времени
На панели инструментов вы можете проверить соотношение метаинформации. Вся эта информация может быть отправлена по электронной почте в режиме реального времени с помощью нашей системы уведомлений, включенной в дополнение к плагину. Выберите метаинформацию, которую вы хотите, установите частоту электронной почты, и вы или ваш клиент сможете получить всю эту информацию в папке «Входящие».
Плагин WP Meta SEO + Цены на аддоны Pro
Присоединяйтесь к нашим 60000+ участникам и получайте поддержку и обновления новых версий