0

目前我的网站标题如下所示:

<title>My Site Title</title>

上面的代码是在'header.php'文件中添加的,所以每个页面都有相同的页面标题。我需要为不同的页面设置不同的标题。

例如,

<title>
 if 'contact.php' then title= 'Contact Us'
 else if 'faq.php' then title= 'FAQ'
 else if 'add.php' then title= 'Add'
 else title= 'My Site Title'
</title>

有人请帮助我!

4

7 回答 7

2

我猜是contact.php include 'header.php';。然后这样的事情会起作用:

联系方式.php:

<?php
$title = 'Contact Us';
include 'header.php';
// your code
?>

header.php:

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

提示:看看模板引擎。例如,我喜欢聪明。也许有人会用其他一些例子对此发表评论;)

于 2013-09-11T12:56:35.400 回答
0

我建议您使用带有标题的数组而不是一系列ifs (分别是开关)

<?php

$file = basename($_SERVER['PHP_SELF']);
$titles = array(
    'contact.php' => 'Contact Us',
    'faq.php' => 'FAQ',
    'add.php' => 'Add',
);

if(array_key_exists($file, $titles){
    echo '<title>'.$titles[$file].'</title>';
}else{
    echo '<title>Ny Site Title</title>';
}

?>
于 2013-09-11T12:56:57.870 回答
0

在脚本中创建一个名为 $page 的变量,并在模板文件中使用该变量。

Home页面的业务逻辑,例如:

<?php
.
.
.
$page = 'Home';
render($page);

查看 Home 的逻辑页面:

.
.
.
<title>
<?php echo $page; ?>
</title>
.
.
.

这只是一个概念,它不是一个功能齐全的代码。

于 2013-09-11T12:58:07.733 回答
0

将您的标题拆分为 2 个单独的 php 文件,一个在标题之前,一个在标题之后(这将与其他页面特定数据一起使用,请参阅答案末尾的注释)

那么您的页面顶部应如下所示:

<?php include_once("inc/begin-head.inc");?>
<title>My Title</title>
<meta name="description" content="description"></meta>
<?php include_once("inc/end-head.inc");?>

还有一些其他的解决方案,比如把header变成一个类并定义它的变体,然后调用一个函数来完整输出head

请注意,还有很多其他分页特定标签。标题、元描述、规范 url 链接、元关键字、打开图数据......

于 2013-09-11T12:59:03.460 回答
0

您可以尝试这样并使用 basename($_SERVER['PHP_SELF']) 现在查找 $title[key]

           $title = array();
           $title['home.php'] = 'My home page';
           $title['Hello.php'] = 'My title';
于 2013-09-11T12:59:36.487 回答
0

我如何为将来好奇的人做到这一点......

我有一个包含以下代码的“pagetitles.php”页面:

 $page_files=array(
  "admin"=>"Admin Panel",
  "profile"=>"Your Profile",
  "billing"=>"Billing / Subscriptions",
  "pricing"=>"Our Pricing",
  "settings"=>"Your Settings",
  "bugs"=>"Bug/Feature Tracker",
  "search"=>"Search Results",
  "clients"=>"My Clients");

if(isset($_GET['rq'])){
if(in_array($_GET['rq'],array_keys($page_files))) {
$pagetitle = $page_files[$_GET['rq']];
}
}

然后我将该文件包含在我的 index.php 页面的最顶部,并在我希望标题所在的位置回显 $pagetitle。但这也需要另一个文件来处理服务特定页面,使用 ?rq 请求

在我的“page_dir.php”文件中,我有以下处理 ?rq= 页面的内容(例如:www.example.com ?rq= home 将加载主页,上面的页面标题位于“home”数组中)

这是 page_dir.php 文件:

$page_files=array(
    "noaccess"=>"pages/noaccess.php",
    "home"=>"pages/dashboard/home.php",
    "lists"=>"pages/dashboard/lists.php"
  );

if(isset($_GET['rq'])){
if(in_array($_GET['rq'],array_keys($page_files))) {
      include $page_files[$_GET['rq']];
}else{
      include $page_files['home'];
}}else{
    include $page_files['home'];
}

这个 page_dir.php 文件,我放在我希望主要内容显示在的索引页面上......然后我让每个单独的页面只包含内容(比如 home.php 文件只是 home.php 没有导航栏的内容和页脚)

在我想要页面标题的 index.php 文件中,我有以下代码:

    if(isset($code_nav_title)){
      echo $code_nav_title;
    }elseif(isset($pagetitle)){
      echo $pagetitle;
    }else{
      echo "Default Page Title Here";
    }

$code_nav_title 让我可以从表单提交中设置页面标题,如果我想让它说“成功”或“失败”:) “这里的默认页面标题”可以让你设置一些东西,如果一切都无法显示(比如如果你忘了设置页面标题)

希望这是有道理的!它为我节省了很多麻烦,并且使扩展/更改变得容易!

于 2021-11-23T23:00:57.183 回答
0

要动态添加标题,首先在 header.php 文件中设置以下代码:

<title> 
    <?php 
        if(isset($title) && !empty($title)) { 
            echo $title; 
        } else { 
            echo "Default title tag"; 
        }
    ?>
</title>

并在每个页面中设置标题,然后将标题包括为:

$title = "Your Title";
include 'header.php';
于 2019-07-13T08:24:50.873 回答