Intereting Posts
Динамический диапазон дат запросов Удаление пользовательских полей при удалении сообщений Перемещение wp-config.php, когда у вас есть вторая установка wordpress Mass / Bulk назначает назначенные изображения сообщениям «Edit_published_posts» и «edit_other_post» Получение значений пользовательских полей в режиме быстрого редактирования Пользователь автора ограничивается сообщениями о таксономии Ошибка перенаправления после публикации комментария на персонализированный пост Является ли номер сообщения всегда инкрементным n + функция выпадающих состояний us и echo в файлах шаблонов тем Пользовательский тип сообщения: установите post_title равным произвольному типу почтового типа Редактирование плагина не вступает в силу Способ проверить, находимся ли мы в режиме Custom Customizer? Медиа-библиотека и сообщения перечисляют проблемы с WordPress на IIS Как передать файл изображения в wp_handle_upload?

Добавление метатег в сообщение с помощью его тегов, выдержки и содержимого

Я запускаю многопользовательскую платформу, где я добавил условия, которые заставляют авторов добавлять теги к своему сообщению. Чтобы улучшить SEO, я хотел бы добавить Meta Tags к сообщениям. В идеале, с легким решением (иметь высокий трафик) через функции или пользовательский плагин.

Есть два метатега, которые я хочу добавить, сначала это описание :

<meta name="description" content="Description should be no more than 150 characters" /> 

Для описания я хочу получить отрывок из сообщения и разбить его до 150 символов (включая пробелы). Если сообщение не содержит отрывок, возьмите первые 150 символов основного текста (исключая короткие коды, если они есть).

Для ключевых слов :

 <meta name="keywords" content="Keyword, Keyword 2, Keyword 3" /> 

Каждое ключевое слово или ключевую фразу нужно разделить запятой, а затем пробелом. Я хочу захватить категорию и теги сообщения и добавить его здесь. Например, если категория моего сообщения – это Movie , а теги – Oldboy , Revenge и South Korean тогда мета ключевыми словами будут: content="Movie, Oldboy, Revenge, South Korean"

Кроме того, очевидно, что код должен выполняться только на почтовых страницах. И я догадываюсь, что <head> HTML доходит до фактического цикла, поэтому мне нужно что-то еще, чем global $post .

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

Solutions Collecting From Web of "Добавление метатег в сообщение с помощью его тегов, выдержки и содержимого"

Я бы держал вне вашего header.php и добавлял следующее к вашим functions.php или завершал как плагин:

 add_action( 'wp_head', 'wpse_71766_seo' ); /** * Add meta description & keywords for single posts. */ function wpse_71766_seo() { if ( is_single() && $post_id = get_queried_object_id() ) { if ( ! $description = get_post_field( 'post_excerpt', $post_id ) ) $description = get_post_field( 'post_content', $post_id ); $description = trim( wp_strip_all_tags( $description, true ) ); $description = substr( $description, 0, 150 ); $keywords = array(); if ( $categories = get_the_category( $post_id ) ) { foreach ( $categories as $category ) $keywords[] = $category->name; } if ( $tags = get_the_tags( $post_id ) ) { foreach ( $tags as $tag ) $keywords[] = $tag->name; } if ( $description ) printf( '<meta name="description" content="%s" />' . "\n\t", esc_attr( $description ) ); if ( $keywords ) printf( '<meta name="keywords" content="%s" />' . "\n\t", esc_attr( implode( ', ', $keywords ) ) ); } } 

Это перехватывает действие wp_head и выводит требуемую мета только в том случае, если в настоящее время просматривается одна запись.

Изменить: Исправлены два одинаковых символа, которые отсутствовали.