【问题标题】:wordpress get_header() on a page template getting the head content inside of the body tag页面模板上的 wordpress get_header() 获取正文标记内的头部内容
【发布时间】:2021-03-08 16:41:46
【问题描述】:

我的 Wordpress 模板页面出现问题。在模板页面中调用get_header()时,head的内容出现在body标签内,造成麻烦。我找不到解决方案。

这就是我的意思:

page inspect element

页面模板:

<?php
  /*
  * Template Name: sub services
  */

  get_header();
?>

<h1>sub page</h1>

<?php
    get_footer();
?>

header.php:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>

<head>
 <meta charset="<?php bloginfo('charset'); ?>">
 <?php wp_title();?>
 <link rel="icon" type="image/png" href="/favicon.png">
 <link href="https://fonts.googleapis.com/css2?family=Lemonada:wght@600&display=swap" rel="stylesheet">
 <script src="https://kit.fontawesome.com/90928eb6b7.js" crossorigin="anonymous"></script>
 <?php wp_head(); ?>
</head>

<body id="theme-body" <?php body_class(); ?>>
  <header>
     <h1>Main Header</h1>
  </header>

我在 wordpress admin 中添加了一个页面并将其链接到模板。

wordpress add page

除了 head 的内容在 body 标记中之外,一切正常。拨打get_header()时。在template.php 中,我检查了我的错误日志并且没问题。我不知道是什么导致了这个问题或者我做错了什么。

【问题讨论】:

    标签: php html wordpress custom-wordpress-pages


    【解决方案1】:

    您的header.php 文件包含完整的body(包括关闭 &lt;/body&gt;)甚至关闭&lt;/html&gt; 标记。然后,您的页面模板会附加一些 HTML 和页脚 - 这是无效的 HTML,并不是真正的预期,是吗?

    浏览器可能会尝试通过添加缺失或省略多余的标签来修复这些错误,但在这种情况下,这些都不会产生预期的结果 - 它会导致像您看到的那样的结果。

    header.php 文件可以包含开始 &lt;body&gt; 标记,但不能包含结束 &lt;/body&gt;。但它应该包含 Wordpress 循环,并在其中 the_content() 加载实际页面内容,以及获取标题、特色图片等的其他 WP 函数。

    之后,您通常使用get_footer(); 获取页脚,如果页面模板中没有,可能包含结束&lt;/body&gt; 标记。

    因此,您的代码中最大的问题是关闭 &lt;/body&gt;&lt;/html&gt; 标记以及由此产生的无效 HTML。

    【讨论】:

    • 哦。在问题中插入代码时,我错误地添加了结束
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2023-03-08
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多