如何使用PHP实现引入公共header后各页面动态修改title标题?
实现动态差异化标题的方法
核心逻辑非常简单:在引入公共头部文件前,先在当前页面定义自定义标题变量,公共头部直接调用该变量渲染标题即可,具体操作分两步:
步骤1:修改业务页面(以index.php为例)
把原来的引入头部代码调整顺序,先定义当前页面对应的标题变量,再引入公共头部:
<?php // 定义当前页面的专属标题 $custom_title = "Toys - Home"; // 再引入公共头部文件 include 'headernav.php'; ?> <!-- 下方原有页面代码保持不变即可 --> <div class="header-outs" id="home"> <div class="header-bar"> <div class="info-top-grid"> <div class="info-contact-agile"> <ul> <li> <span class="fas fa-phone-volume"></span> <p>+(000)123 4565 32</p> </li> <li> <span class="fas fa-envelope"></span> <p><a href="mailto:info@example.com">info@example1.com</a></p> </li> <li> </li> </ul> </div> </div> </div> </div>
如果是商店页面shop.php,只需要把$custom_title的取值改成"Toys - Shop"即可,其他页面同理修改对应变量值。
步骤2:修改公共头部文件headernav.php
把固定写死的title标签改成动态读取变量的形式,同时加默认值防止忘记定义变量时报错:
<!DOCTYPE html> <html lang="zxx"> <head> <!-- 优先读取自定义标题,没有定义就用默认的首页标题 --> <title><?php echo isset($custom_title) ? $custom_title : 'Toys - Home'; ?></title> <!-- 下方原有meta、link等代码保持不变 --> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="keywords" content="" /> <link href="css/style.css" rel='stylesheet' type='text/css' media="all"> <link href="//fonts.googleapis.com/css?family=Sunflower:500,700" rel="stylesheet"> <link href="//fonts.googleapis.com/css?family=Open+Sans:400,600,700" rel="stylesheet"> </head> <body>
注意事项
- 必须保证
$custom_title变量的定义代码在include 'headernav.php'之前,PHP是顺序执行代码,先定义的变量才能被后续引入的文件读取到。
内容的提问来源于stack exchange,提问作者Kbs2021
相关产品推荐
相关产品推荐

