Wordpress:在single.php和index.php上为单个DIV分配不同的ID会返回500错误

时间:2013-04-30 20:42:16

标签: php wordpress if-statement wordpress-theming

我正在修改Wordpress主题并遇到了一个设计问题,需要我在single.php和index.php模板上使用不同的ID作为包装div。存在于header.php模板中的原始div的开始标记如下所示:

<div id="wrap" class="clearfix">

我尝试的修改如下:

<div id="<?php if ( is_single() ) { 'single-wrap' } else { 'wrap' } ?>" class="clearfix">

我也试过

<div id="<?php if ( is_single() ) { 'single-wrap' } elseif ( is_front_page() ) { 'wrap' } else { 'wrap' } ?>" class="clearfix">

<div id="<?php if ( is_single() ) { 'single-wrap' } elseif ( is_home() ) { 'wrap' } else { 'wrap' } ?>" class="clearfix">

这些解决方案都没有成功。事实上,每个人都完全打破了主题,返回500(内部服务器错误),指定而不是意外情况,(我假设,我在ID属性中放入了php if语句),而服务器正在尝试完成请求。

现在,我之前制作了简单的Wordpress主题,因此我理解主题层次结构是如何工作的;我也非常擅长Javascript和Python,所以我理解编程逻辑。这是PHP的语法问题吗?或者有什么比我更缺的东西,在这里?

非常感谢任何帮助!

(另外,如果有帮助,我尝试修改的主题是AJ Clarke's Tetris。)

我还应该提一下ID&#34;单包&#34;已在css中定义。

1 个答案:

答案 0 :(得分:1)

嗯,对于一个你没有回应ID!

试试这个:

<div id="<?php if ( is_single() ) { echo 'single-wrap'; } else { echo 'wrap'; } ?>" class="clearfix">

此外,许多主题会根据页面的类型向body元素添加类,例如singlearchivehome等等。您可以完成此操作只需使用CSS选择器body.single #wrap来覆盖#wrap中需要更改的任何内容。