我有一个博客http://sweatingthebigstuff.com,我想在页脚中添加一个额外的行,该行只显示在主页上。我找到了这段代码,但它对我不起作用。我是否有错误的语法或者还有什么我可以尝试使其工作?
<?php if ( is_home() ) { ?>
text
<?php } ?>
这是footer.php的名称
<?php include (TEMPLATEPATH . '/sidebar1.php'); ?>
<div class="cleared"></div>
<?php get_footer(); ?>
以下是页脚代码:
文字2
联系|免责声明|隐私声明
版权所有©2009-2010 Sweating The Big Stuff。版权所有。
然后是一些sitemeter废话。
答案 0 :(得分:2)
is_home()
设置一个似乎不会重置或重新评估的全局变量,wp有点奇怪。
尝试将wp_reset_query()
放在if语句代码的 end 开头
实际上,最好先调用它,因为我们可以确保重置查询
<?php wp_reset_query();
if ( is_home() ) { ?>
text
<?php } ?>
既然php正在运行,理想情况下你需要上面的代码。
文本
我刚刚做了一个视图源,我可以清楚地看到php代码,因为它本来是解析服务器端所以不应该是可见的。视图源中不应该出现以下内容....正在编辑错误文件?
<p>
<?php if ( is_home() ) { ?>
text
<?php } ?>
<wp_reset_query()>
<br />
<br />
footer.php文件应位于wp-content / themes / nameofyourtheme文件夹中
答案 1 :(得分:1)
is_home()
是一个应该返回true或false的方法。您需要在某处实现此方法。如果blogspot没有为您实现此方法,则需要自己完成。对于您的网站,我认为此功能可以满足您的需求:
<?php
function is_home(){
$r = $_SERVER['REQUEST_URI'];
return $r == '/' || $r == '' || $r == '/index.php';
}
if(is_home()) {
?>
text
<?php } ?>
在你想要页脚的位置,放:
<?php include 'footer.php'; ?>
而不是行:
<?php get_footer(); ?>
我相信你的问题是get_footer()正在以文本形式读取页脚,因此它不会事先执行PHP。如果你这样做,你可以在标题中添加尽可能多的PHP。
答案 2 :(得分:0)
您的语法没有问题,当我查看您的页面来源时,我会看到“文字”
页脚页面的文件扩展名是什么?如果它是“footer.php”那么我不应该看到php()的开始和结束条款。除非文件扩展名为“.php”
,否则php不会运行关于之前的回答:
在这种情况下, <?php wp_reset_query();?>
应该在<?php if(is_home()){?>text<?php } ?>
之前。 is_home()依赖于页面上存在的循环。也许在某个地方你使用了自定义查询,或者你的一个插件使用了一个扰乱默认查询变量的自定义查询。就像我说的那样,在if语句之前使用reset语句。
答案 3 :(得分:0)
您需要修改代码以包含对is_front_page()
的检查,如下所示:
<?php
$ishomepage = ( is_home() || is_front_page() );
switch( $ishomepage )
{
case true :
echo 'Your homepage-only snippet of text goes here';
break;
case false :
default :
// Do nothing... or do something else...
break;
}
?>
参考:WordPress Codex: is_front_page()
默认WP安装没有定义主页,它使用你的index.php并检查其他模板,如home.php
模板作为起点(home.php
,只有当你的主题有它时。 )以下是其在线文档中的图表,其中显示了其层次结构的工作原理:WordPress Template Hierarchy。
默认情况下,WordPress会在首页显示您最近的帖子 你的网站。但许多WordPress用户希望拥有静态前端 页面或启动页面作为首页。这个“静态前线 页面“对于那些希望没有”博客“的人来说,看起来很常见 他们的网站,给它一个更多的CMS(内容管理系统)的感觉。
如果您想知道如何设置静态主页,请阅读本文并按照说明操作:Creating a Static Frontpage。设置静态首页后,is_home()
将按预期工作。