我有一个博客,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“挥汗如雨”。版权所有。
然后是一些网站流量计的废话。
发布于 2010-11-11 12:28:51
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。
发布于 2010-11-12 01:14:00
你的语法没有问题,当我查看你的页面源代码时,我看到的是“text”
页脚页的文件扩展名是什么?如果是"footer.php“,那么我应该看不到php ()的开头和结尾。除非文件扩展名是".php“,否则php不会运行。
关于前面的回答:
在这种情况下,<?php wp_reset_query();?>应该放在<?php if(is_home()){?>text<?php } ?>之前。is_home()依赖于页面上存在的循环。也许您在某个地方使用了自定义查询,或者您的某个插件使用了破坏默认查询变量的自定义查询。正如我所说的,在if语句之前使用reset语句。
发布于 2012-10-23 22:22:41
您需要修改代码以包含对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()将按预期工作。
https://stackoverflow.com/questions/4151306
复制相似问题