Динамический заголовок тега в PHP - PullRequest
4 голосов
/ 28 ноября 2010

Я пытаюсь динамически заполнить тег заголовка на веб-сайте.У меня есть следующий код на моей странице index.php

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

И следующий на моей странице заголовка

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

Но что бы я ни делал, я не могу заставить этот код работать,У кого-нибудь есть предложения?

спасибо

Ответы [ 8 ]

9 голосов
/ 28 ноября 2010

Это работает (протестировано - создайте новую папку, поместите первую строку кода в файл с именем index.php, а вторую - в header.php, запустите его, проверьте строку заголовка).

Вы должны дважды проверить, находятся ли эти два файла в одной папке, и что вы включаете правильный header.php из правильного index.php. И убедитесь, что $ title не устанавливается обратно в null где-то в вашем коде.

Узнайте больше о переменной области здесь .

Редактировать: Примеры видимых изменений:

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

<title>TEST2<?php if ...
3 голосов
/ 28 ноября 2010

Включаете ли вы файл заголовка до или после установки переменной title? Если вы включите его раньше, тогда, конечно, он не будет установлен.

если вы делаете что-то подобное в вашем index.php:

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

тогда это не сработает - вы включаете заголовочный файл и выводите текст заголовка до того, как будет установлена ​​переменная $ title.

1 голос
/ 25 декабря 2015

попробуйте объявить переменную перед использованием

$title = '123';
require 'includes/header.php';
0 голосов
/ 21 декабря 2017

Мы также можем использовать функции, и это хороший способ работать на веб-сайтах в реальном времени.

Делай просто:

создайте файл 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.

0 голосов
/ 04 июля 2015

Я предполагаю, что ваш заголовок хранится в другом файле (может быть вне корневого каталога), тогда все вышеперечисленные решения не будут работать для вас, потому что $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"

Это проверено и работает.

0 голосов
/ 03 июля 2014

Привет Попробуйте этот метод старой школы ..

В вашем заголовочном файле (например, 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 Page сделайте вот так (например, 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");


?>
0 голосов
/ 28 ноября 2010

Ваш код работает нормально. Возможно ли, что ваша переменная заголовка будет установлена ​​после включения заголовка? Кроме того, правильно ли работают другие PHP-скрипты на этом сайте?

0 голосов
/ 28 ноября 2010

Ваш код выглядит нормально. Вы уверены, что php на самом деле разбирает вашу страницу? Вы не получаете никаких ошибок, предупреждений или уведомлений?

...