繁体   English   中英

PHP中的动态标题标签

[英]Dynamic Title Tag in PHP

我正在尝试在网站上动态填充标题标签。 我的 index.php 页面中有以下代码

<?php $title = 'myTitle'; include("header.php"); ?>

以及我的标题页面上的以下内容

<title><?php if (isset($title)) {echo $title;}
else {echo "My Website";} ?></title>

但无论我做什么,我都无法让这段代码工作。 有没有人有什么建议?

谢谢

这有效(测试它 - 创建一个新文件夹,将第一行代码放在名为 index.php 的文件中,将第二行代码放在 header.php 中,运行它,检查标题栏)。

你应该仔细检查,如果这两个文件都在同一个文件夹,并添加的是右边的index.php正确的header.php。 并确保 $title 在您的代码中的某处没有被设置回null

在此处了解有关变量范围的更多信息。

编辑:可见更改的示例是:

TEST1<?php $title = 'myTitle'; include("header.php"); ?>

<title>TEST2<?php if ...

您是在设置标题变量之前还是之后包含头文件? 如果您之前包含它,那么当然不会设置它。

如果你在 index.php 中做这样的事情:

<?php
     include('header.php');
     $title = "blah blah blah";
?>

那么它将不起作用 - 在设置 $title 变量之前包含头文件并输出标题文本。

尝试在使用之前声明变量

$title = '123';
require 'includes/header.php';

嗨试试这个老派的方法..

在您的头文件中(例如 header.php)

<?php 
error_reporting(E_ALL);

echo '<!DOCTYPE html>
<!--[if IE 7 ]><html class="ie7" lang="en"><![endif]-->
<!--[if IE 8 ]><html class="ie8" lang="en"><![endif]-->
<!--[if IE 9 ]><html class="ie9" lang="en"><![endif]-->
<!--[if (gte IE 10)|!(IE)]><!-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<!--<![endif]-->
<head>'; 
?>
<?php  
if($GLOBALS['title']) {
    $title = $GLOBALS['title'];
} else {
    $GLOBALS['title'] = "Welcome to My Website";        
}
if($GLOBALS['desc']) {  
    $desc = $GLOBALS['desc'];
} else {
    $desc = "This is a default description of my website";      
}
if($GLOBALS['keywords']) {
    $keywords = $GLOBALS['keywords'];   
} else {
    $keywords = "my, site, key, words";     
}
echo "\r\n";
echo "<title> ". $title ." | MyWebsite.com </title>";
echo "\r\n";
echo "<meta name=\"description\" content='". $GLOBALS['title']."'>";
echo "\r\n";
echo "<meta name=\"keywords\" content='".$GLOBALS['title']."'>";
echo "\r\n";
?>

在你的 PHP 页面文件中这样做(例如 about.php)

<?php

$GLOBALS['title'] = 'About MyWebsite -This is a Full SEO Title';
$GLOBALS['desc'] = 'This is a description';
$GLOBALS['keywords'] ='keyword, keywords, keys';

include("header.php");


?>

我假设您的标头存储在不同的文件中(可能在根目录之外),那么上述所有解决方案都不适用于您,因为$title在定义之前$title设置。

这是我的解决方案:在您的header.php文件中,您需要通过以下方式将$title设置为全局: global $title; 然后在你的标题中回应它:

<?php global $title; ?>
<title><?php echo isset($title) ? $title : "{YOUR SITE NAME}"; ?></title>

然后在每个页面中,您可以在包含头文件后定义标题,例如在index.php文件中:

include_once("header.php");
$title = "Your title for better SEO"

这已经过测试并且正在运行。

我正在尝试在网站上动态填充标题标签。 我的index.php页面中有以下代码

<?php $title = 'myTitle'; include("header.php"); ?>

以及我标题页上的以下内容

<title><?php if (isset($title)) {echo $title;}
else {echo "My Website";} ?></title>

但是,无论我做什么,我都无法使此代码正常工作。 有没有人有什么建议?

谢谢

我正在尝试在网站上动态填充标题标签。 我的index.php页面中有以下代码

<?php $title = 'myTitle'; include("header.php"); ?>

以及我标题页上的以下内容

<title><?php if (isset($title)) {echo $title;}
else {echo "My Website";} ?></title>

但是,无论我做什么,我都无法使此代码正常工作。 有没有人有什么建议?

谢谢

我们还可以使用函数及其在实时网站上工作的好方法。

做简单的:

创建一个 index.php 文件并粘贴以下几行:

<?php include("title.php");?>
<!doctype html>
<html>
<head>
    <title><?php index_Title(); ?></title>
<head>
</html>

- 然后

创建一个 title.php 文件并粘贴以下几行:

<?php
function index_Title(){
$title = '.:: itsmeShubham ::.';
if (isset($title)){
    echo $title;
    }else{
        echo "My Website";
    };
}
?>

它会按照您的需要完美运行,我们还可以通过仅触摸一个 title.php 文件来更新任何标题。

<?php
    echo basename(pathinfo($_SERVER['PHP_SELF'])['basename'],".php");
?>

这有效。 因为我使用的是 PHP,所以我不检查其他扩展; 如果需要,请使用pathinfo['extension']

您可以通过使用define();来实现这一点define(); 功能。
在您的header.php文件中添加以下行:

<title><?php echo TITLE; ?></title>

在要设置动态标题的页面上,添加以下行:
EX:我的页面名称是user-profile.php ,我想在其中设置动态标题,因此我将添加该页面的那些行。

<?php
    define('TITLE','User Profile'); //variable which is used in header.php
    include('header.php');
    include('dbConnection.php');
?>

所以我的user-profile/.php文件的标题是: User Profile
像这样,您可以在您网站的任何页面上添加标题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM