我正在开发自定义wordpress主页。 我希望它在标题中加载一个不同的div。
标题现在为每个页面加载#content div。但是如果主页加载,我想让它加载#contenthome div。
我正在使用这个php代码:
<?php if (is_page_template('template-home.php')) { ?>
<div id="contenthome">
<?php } else { ?>
<div id="content">
<? } ?>
我对php很新。所以我希望你们能帮助我:)
非常感谢。
答案 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