在wordpress中加载不同div在家庭模板

时间:2012-04-27 12:58:09

标签: php wordpress html

我正在开发自定义wordpress主页。 我希望它在标题中加载一个不同的div。

标题现在为每个页面加载#content div。但是如果主页加载,我想让它加载#contenthome div。

我正在使用这个php代码:

<?php if (is_page_template('template-home.php'))  { ?>
<div id="contenthome">
<?php } else { ?>
<div id="content">
<? } ?>

我对php很新。所以我希望你们能帮助我:)

非常感谢。

3 个答案:

答案 0 :(得分:2)

或者这个:

if(is_home())
{
    <div id="contenthome">
<?php } else { ?>
    <div id="content">
<? } ?>

就个人而言,我个人更喜欢用速记写东西。考虑使用它来缩短代码:

<div id="<?php echo is_home() ? 'contenthome' : 'content'; ?>">

其他注意事项:如果你的&lt; body&gt; tag添加了Wordpress body_class(),你几乎可以用CSS定位各个页面,即使他们使用相同的模板。与任何其他页面一样,主页将应用一个独特的正文类,然后允许您定位该特定页面。

因此,如果您的问题仅仅是能够针对任何给定页面而无论使用CSS模板,您都不一定需要将任何唯一的div应用于您的页面。例如:

<style type="text/css">
#content{display:block;}
.home #content{display:none;}
</style>

这将仅在主页上隐藏内容div。它可能不是你想要它做的,但你可以看到页面本身是如何被定位来覆盖默认行为。

更新:根据您的最新问题,如果您需要其他特定页面来使用该条件,请使用is_page(),如下所示:

长编:

if(is_home() || is_page('posts_page_title'))
{
    <div id="contenthome">
<?php } else { ?>
    <div id="content">
<? } ?>

缩写:

<div id="<?php echo is_home() || is_page('posts_page_title') ? 'contenthome' : 'content'; ?>">

如果您愿意,也可以使用is_page('posts_page_ID')或is_page('posts_page_slug')。玩弄它,看看什么最适合你。更多信息请访问:http://codex.wordpress.org/Function_Reference/is_page

答案 1 :(得分:0)

参考这个post尝试这个......

$pagename = get_query_var('pagename');
if ($pagename = 'template-home.php') {

<div id="contenthome">

<?php } else { ?>

<div id="content">

<? } ?>

答案 2 :(得分:0)

好像您已经在主题中为主页创建了一个文件,并将其称为 template-home.php

从这一点开始,你有两个选择:

1)你可以定义一个常量(或变量)并决定只在定义时才使用div;如果你要使用变量,请记住在header.php中你实际上是在一个函数(get_header)中,你需要使用global来访问它

2)如果您预见主页与其他wordpress之间的标题结构之间存在任何其他差异,则可以使用另一个文件作为标题。为此,在你的template-home.php文件中给get_header函数一个参数,比如get_header('home')

如果你这样做,将加载header.php而不是header.php