要输出 Drupal 10 中的页面内容,您可以使用以下代码:
<?php
// 获取当前页面的节点 ID。
$nid = \Drupal::routeMatch()->getParameter('node')->id();
// 使用节点 ID 获取页面实体对象。
$node = \Drupal\node\Entity\Node::load($nid);
// 检查实体对象是否存在并且是一个页面类型。
if ($node && $node->getType() == 'page') {
// 获取页面的标题。
$title = $node->getTitle();
// 获取页面的正文。
$body = $node->get('body')->value;
// 输出页面标题和正文。
echo '<h1>' . $title . '</h1>';
echo $body;
}
?>
这将获取当前页面的节点 ID,使用该 ID 获取页面实体对象,检查实体对象是否存在并且是一个页面类型,然后输出页面标题和正文。请注意,您需要将此代码嵌入到页面模板文件中,以便它在页面加载时运行。
如果您想要输出页面中的其它字段(例如标签、作者、日期等),您可以使用以下代码:
<?php
// 获取当前页面的节点 ID。
$nid = \Drupal::routeMatch()->getParameter('node')->id();
// 使用节点 ID 获取页面实体对象。
$node = \Drupal\node\Entity\Node::load($nid);
// 检查实体对象是否存在并且是一个页面类型。
if ($node && $node->getType() == 'page') {
// 获取页面的标题。
$title = $node->getTitle();
// 获取页面的正文。
$body = $node->get('body')->value;
// 获取页面的标签。
$tags = $node->get('field_tags')->referencedEntities();
$tag_names = array();
foreach ($tags as $tag) {
$tag_names[] = $tag->getName();
}
$tag_output = implode(', ', $tag_names);
// 获取页面的作者。
$author = $node->getOwner()->getDisplayName();
// 获取页面的日期。
$date = $node->getCreatedTime();
// 输出页面标题、正文、标签、作者和日期。
echo '<h1>' . $title . '</h1>';
echo '<p><strong>Tags:</strong> ' . $tag_output . '</p>';
echo '<p><strong>Author:</strong> ' . $author . '</p>';
echo '<p><strong>Date:</strong> ' . date('F j, Y', $date) . '</p>';
echo $body;
}
?>
这将获取当前页面的节点 ID,使用该 ID 获取页面实体对象,检查实体对象是否存在并且是一个页面类型,然后获取页面的标题、正文、标签、作者和日期,并输出它们。请注意,这里假设您已经为页面创建了一个名为 field_tags 的分类词汇,并将它与页面实体类型相关联。如果您希望输出其它字段,请将它们的机器名称替换为 field_tags 并根据需要更改输出格式。