1

我需要使主页标题中的页面标题与内部页面的页面标题不同。这似乎是一个简单的 php 修复程序,但它超出了我的想象。这似乎是解决方案,但实施它给出了一个错误代码:PHP if URL equals this then perform action

这是我的代码:

<?php
/**
 * The Header for our theme.
 */
?><!DOCTYPE html>
<html>
<head>

    <link href='http://fonts.googleapis.com/css?family=GFS+Didot'
          rel='stylesheet' type='text/css'>
    <title><?php wp_title('|', true, 'right'); ?></title>
    <?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
<div>
    <header class="pagetitle">
        <h1>
            <a href="<?php echo esc_url(home_url('/')); ?>">
                <?php bloginfo('name'); ?>
            </a>
        </h1>
        <nav>
            <?php wp_nav_menu(array('theme_location' => 'primary')); ?>
        </nav>
    </header>

有人能告诉我 if/else 语句会在主页上给我一个,而在所有其他页面上给我一个不同的吗?

4

3 回答 3

1

尝试这个:

<title>
    <?php 
        if( is_home() ) {
            echo 'Homepage Title';
        } 
        else {
            echo 'Other Pages Title';
        }
    ?>
</title>

参考:http ://codex.wordpress.org/Function_Reference/is_home

这是我在自己的网站上使用的内容,仅在主页上显示网站标题,但在子页面上显示文章标题:

<title>
    <?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' |'; } ?> <?php bloginfo('name'); ?>
</title>

参考:http ://codex.wordpress.org/Function_Reference/wp_title

于 2013-08-28T02:32:47.880 回答
1
if( is_home() || is_front_page() ) {
    echo 'HOMEPAGE';
} 
else {
    echo 'INTERIOR PAGES';
}
于 2013-08-28T04:06:56.873 回答
0

您提到的问题的最新编辑显示了正确的 if/else 语句:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'your.homepage.com/url/etc') {
  echo "Homepage header text";
}
else {
  echo "Other header text";
}

用于检查用户是否在您的主页上is_home()的特定于 wordpress 的解决方案是在显示主博客页面时返回布尔值的函数。is_home()有关该功能的更多详细信息,请参见此处。wordpress 中还有其他带有自己功能的“条件标签”。可以在此处找到这些列表。

因此,例如,您还可以使用以下is_home()函数重写上述 PHP 代码块:

if (is_home()) {
  echo "Homepage header text";
}
else {
  echo "Other header text";
}
于 2013-08-28T02:31:45.873 回答