【问题标题】:pass information back into included file将信息传递回包含的文件
【发布时间】:2016-05-05 02:11:24
【问题描述】:

我有一个网站,我已经设置了包含,因此它是模板化的。我可以将信息从一页传递到包含的文件吗?情况就是这样,我有一个header.php,我把page.php文件放在了它们的顶部。标头包括所有好东西,例如我在每个页面上需要的 head 和导航,但是我如何将特定信息传递给 header.php 页面以获得更好的 SEO,例如 OG 标签内容和页面标题内容?

Header.php

<!DOCTYPE HTML>

<html lang="en">

    <head>
        <?php require 'head.php'; ?>
    </head>

    <body id="app">

        <div id="page" class="page">
            <div id="wrap-header" class="wrap-header">
              <header id="masthead" class="site-header">

                <?php require 'app-menu.php'; ?>

              </header>

            </div>

            <div id="wrap-main" class="wrap-main">

page.php

<?php require 'layouts/header.php'; 

 <!-- Page specific content pulled in here -->

<?php require 'layouts/footer.php'; ?>

【问题讨论】:

  • 您只能覆盖包含的内容,这里没有“返回”的概念。包含某物使其成为某物的一部分,不再为了争论而分开。
  • PHP 需要或包含文件,按照它们被调用的顺序,按那个顺序。您不能“返回”到以前包含的脚本并更改输出的 html 代码。
  • 是的,我就是这么想的,我试图弄清楚 wordpress 是如何做到的。他们有一个包含标题,但它会为头部提取特定页面内容以进行 SEO 和共享。
  • 它可能会从数据库中提取数据作为标题。
  • 它使用包含文件中定义的函数。这些函数接受参数和/或从数据库中获取信息,并将它们替换到模板中。

标签: php include


【解决方案1】:

您应该定义函数,而不仅仅是在包含文件中生成输出。这是一个简单的例子。

header.php:

<?php
function show_header($title) {
    ?>
    <!DOCTYPE HTML>

    <html lang="en">

        <head>
            <title><?php echo $title ?></title>
            <?php require 'head.php'; ?>
        </head>

        <body id="app">

            <div id="page" class="page">
                <div id="wrap-header" class="wrap-header">
                  <header id="masthead" class="site-header">

                    <?php require 'app-menu.php'; ?>

                  </header>

                </div>

                <div id="wrap-main" class="wrap-main">
    <?php
}

那么你的主页就可以了:

<?php
require('header.php');
show_header("My Home Page");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多