«

drupal10自定义页面SEO设置

时间:2023-6-9 17:42     作者:wen     分类: 其它


若您想同时添加关键词(keywords)和描述(description)到 Drupal 10 页面的 <head> 部分,您可以使用 #attached 属性来实现。下面是一个示例:

use Drupal\Core\Render\Markup;

/**
 * Implements hook_preprocess_HOOK() for page templates.
 */
function mytheme_preprocess_page(&$variables) {
  // 设置关键词和描述
  $keywords = 'Drupal, SEO, 关键词';
  $description = '这是一个示例描述';

  // 构建关键词的 meta 标签
  $keywordsHtml = '<meta name="keywords" content="' . $keywords . '">';

  // 构建描述的 meta 标签
  $descriptionHtml = '<meta name="description" content="' . $description . '">';

  // 使用 #attached 添加到 head 部分
  $variables['#attached']['html_head'][] = [
    [
      '#type' => 'html_tag',
      '#tag' => 'meta',
      '#attributes' => [
        'name' => 'keywords',
        'content' => Markup::create($keywordsHtml),
      ],
    ],
    'mymodule_seo_keywords', // 关键词附加项的唯一标识符
  ];

  $variables['#attached']['html_head'][] = [
    [
      '#type' => 'html_tag',
      '#tag' => 'meta',
      '#attributes' => [
        'name' => 'description',
        'content' => Markup::create($descriptionHtml),
      ],
    ],
    'mymodule_seo_description', // 描述附加项的唯一标识符
  ];
}

在上面的示例中,我们在 mytheme_preprocess_page() 函数中设置了关键词和描述。然后,使用构建的 HTML 标签(<meta>)分别创建了关键词和描述的标签。

最后,使用 #attached 属性将这些标签添加到 html_head 数组中。每个标签都使用不同的附加项标识符来确保唯一性。

请注意,该示例仅为演示目的,并假设您已经定义了关键词和描述的值。您可以根据实际需求替换关键词和描述的值。

确保将 mytheme 替换为您主题的实际机器名称,并将代码放置在主题的 template.php 文件中或自定义模块中。

标签: drupal10