add opengraph
This commit is contained in:
@@ -516,42 +516,78 @@ function get_category_name($post = null)
|
|||||||
|
|
||||||
// Добавляем функцию для формирования мета-тегов страницы
|
// Добавляем функцию для формирования мета-тегов страницы
|
||||||
function custom_meta_tags() {
|
function custom_meta_tags() {
|
||||||
$meta_tags = '';
|
|
||||||
$sitename = get_bloginfo('name');
|
$sitename = get_bloginfo('name');
|
||||||
|
|
||||||
|
$meta_tags = '';
|
||||||
|
$og_tags = '';
|
||||||
|
|
||||||
|
$og_tags .= '<meta property="og:locale" content="ru_RU">';
|
||||||
|
$og_tags .= '<meta property="og:site_name" content="'. $sitename .'">'. PHP_EOL;
|
||||||
|
|
||||||
|
|
||||||
// Получаем заголовок страницы
|
// Получаем заголовок страницы
|
||||||
if (is_single() || is_page()) {
|
if (is_single() || is_page()) {
|
||||||
|
|
||||||
|
$current_url = get_permalink();
|
||||||
|
|
||||||
$post = get_post(); // Получаем объект текущего поста или страницы
|
$post = get_post(); // Получаем объект текущего поста или страницы
|
||||||
$title = get_the_title($post).' - '.$sitename; // Получаем заголовок текущего поста или страницы
|
$title = get_the_title($post).' - '.$sitename; // Получаем заголовок текущего поста или страницы
|
||||||
$description = get_the_excerpt($post); // Получаем отрывок текущего поста или страницы
|
$description = get_the_excerpt($post); // Получаем отрывок текущего поста или страницы
|
||||||
|
|
||||||
$tags = get_the_tags($post); // Получаем теги текущего поста или страницы
|
$tags = get_the_tags($post); // Получаем теги текущего поста или страницы
|
||||||
$keywords = ''; // Переменная для хранения ключевых слов
|
$keywords = ''; // Переменная для хранения ключевых слов
|
||||||
if ($tags) {
|
if ($tags) {
|
||||||
$keywords = implode(', ', wp_list_pluck($tags, 'name')); // Формируем строку с тегами через запятую
|
$keywords = implode(', ', wp_list_pluck($tags, 'name')); // Формируем строку с тегами через запятую
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$post_thumbnail_id = get_post_thumbnail_id($post->ID);
|
||||||
|
$post_thumbnail_url = wp_get_attachment_image_src($post_thumbnail_id, 'full');
|
||||||
|
if ($post_thumbnail_url) {
|
||||||
|
$og_image = esc_url($post_thumbnail_url[0]);
|
||||||
|
$og_tags .= '<meta property="og:image" content="' . $og_image . '">'. PHP_EOL;
|
||||||
|
$og_tags .= '<meta name="twitter:card" content="summary_large_image">'. PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
$og_tags .= '<meta property="og:type" content="article">'. PHP_EOL;
|
||||||
|
|
||||||
} elseif (is_category()) {
|
} elseif (is_category()) {
|
||||||
$category = get_queried_object(); // Получаем объект текущей рубрики
|
$category = get_queried_object(); // Получаем объект текущей рубрики
|
||||||
|
$current_url = get_term_link($category);
|
||||||
$title = $category->name.' - '.$sitename; // Получаем название текущей рубрики
|
$title = $category->name.' - '.$sitename; // Получаем название текущей рубрики
|
||||||
$description = $category->description; // Получаем описание текущей рубрики
|
$description = $category->description; // Получаем описание текущей рубрики
|
||||||
$keywords = $title; // Ключевые слова - название рубрики
|
$keywords = $category->name; // Ключевые слова - название рубрики
|
||||||
} elseif (is_home()) {
|
} elseif (is_home()) {
|
||||||
|
|
||||||
|
$current_url = get_site_url();
|
||||||
|
|
||||||
$title = $sitename; // Получаем название сайта для главной страницы
|
$title = $sitename; // Получаем название сайта для главной страницы
|
||||||
$description = get_bloginfo('description'); // Получаем описание сайта для главной страницы
|
$description = get_bloginfo('description'); // Получаем описание сайта для главной страницы
|
||||||
$keywords = ''; // Для главной страницы ключевые слова оставляем пустыми
|
$keywords = ''; // Для главной страницы ключевые слова оставляем пустыми
|
||||||
|
|
||||||
|
$og_tags .= '<meta property="og:type" content="website">'. PHP_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Добавляем мета-теги только в случае, если их значения не пусты
|
// Добавляем мета-теги только в случае, если их значения не пусты
|
||||||
|
if (!empty($current_url)) {
|
||||||
|
$og_tags .= '<meta property="og:url" content="' . esc_url($current_url) . '" />' . PHP_EOL;
|
||||||
|
}
|
||||||
if (!empty($title)) {
|
if (!empty($title)) {
|
||||||
$meta_tags .= '<title>' . esc_html($title) . '</title>';
|
$meta_tags .= '<title>' . esc_html($title) . '</title>';
|
||||||
|
$og_tags .= '<meta property="og:title" content="'. esc_html($title) .'" />'. PHP_EOL;
|
||||||
}
|
}
|
||||||
if (!empty($description)) {
|
if (!empty($description)) {
|
||||||
$meta_tags .= '<meta name="description" content="' . esc_attr($description) . '">';
|
$meta_tags .= '<meta name="description" content="' . esc_attr($description) . '">'. PHP_EOL;
|
||||||
|
$og_tags .= '<meta property="og:description" content="' . esc_attr($description) . '" />'. PHP_EOL;
|
||||||
}
|
}
|
||||||
if (!empty($keywords)) {
|
if (!empty($keywords)) {
|
||||||
$meta_tags .= '<meta name="keywords" content="' . esc_attr($keywords) . '">';
|
$meta_tags .= '<meta name="keywords" content="' . esc_attr($keywords) . '">'. PHP_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Выводим мета-теги
|
// Выводим мета-теги
|
||||||
echo $meta_tags;
|
echo $meta_tags;
|
||||||
|
echo $og_tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user