Intereting Posts
Я хочу, чтобы виджет отображался только на одной странице Что такое http://go2.wordpress.com/ redirect? Почему WordPress ограничивает количество попыток pingbacks за сообщение? Неустранимая ошибка: вызов функции-члена add_rewrite_tag () для не-объекта в /wp-includes/taxonomy.php в строке 333 Как можно добавить левое и правое поле в панель администратора без доступа к «… wp-includes / admin-bar.php»? Почему полностью нормальный цикл дает ошибки смещения и ошибки максимального времени выполнения? Debian отключает соединение в разделе adminpress Получить общее количество комментариев к сообщениям, написанным автором Ошибка плагинов (вместо этого используйте роли и возможности) в последней версии, multisite Как реплицировать некоторые функции Drupal Views в WordPress? Не работает WordPress nav_menu_link_attributes После миграции сервера серверный процессор перегружается, когда я пытаюсь активировать WPML Как повторно импортировать XML-файл WordPress после редактирования? что отличается между esc_attr, htmlspecialchars и htmlentities Сортировка сообщений по дате (DESC) и по заголовку (ASC)

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

Я запускаю многопользовательскую платформу, где я добавил условия, которые заставляют авторов добавлять теги к своему сообщению. Чтобы улучшить 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 и выводит требуемую мета только в том случае, если в настоящее время просматривается одна запись.

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