1

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

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

我正在使用这个 php 代码:

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

我对php相当陌生。所以我希望你们能帮助我:)

非常感谢。

4

3 回答 3

2

或这个:

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

就个人而言,当涉及到这样的情况时,我更喜欢用速记方式写东西。还可以考虑使用它来缩短您的代码:

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

附加说明:如果您的 <body> 标签添加了 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

于 2012-04-27T13:41:10.990 回答
0

参考这篇文章试试这个....

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

<div id="contenthome">

<?php } else { ?>

<div id="content">

<? } ?>
于 2012-04-27T13:15:17.543 回答
0

似乎您已经在主题中为主页创建了一个文件,并将其命名为template-home.php

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

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

2)如果您预见到主页和 wordpress 其余部分之间的标题结构之间存在任何其他差异,您可以使用另一个文件作为标题。为此,请在您的 template-home.php 文件中为 get_header 函数提供一个参数,例如 get_header('home')

如果你这样做 header-home.php 将被加载而不是 header.php

于 2012-04-27T13:16:58.320 回答