为什么变量在首页有效,但在所有其他页面上返回NULL?

时间:2011-01-20 作者:orbit82

大家好。对于我的主题,我有多个侧栏。每个提要栏文件都有一个$sidebar\\u id变量分配给它。所以,对于侧边栏-1。php,$sidebar\\u id=1,用于侧边栏-2。php、$sidebar\\u id=2,依此类推。每个侧边栏内部都有一个动作挂钩。

然后,我编写一个函数来钩住侧栏操作钩子。在函数中,我引用$sidebar\\u id以在不同的侧栏中显示不同的内容。WordPress在首页识别$sidebar\\u id的值。

但在归档页面、单页面和单帖子上,$sidebar_id始终返回NULL。即使我在函数中将其声明为全局。我不明白为什么函数可以识别首页上的变量,但它不能识别所有其他页面上的变量。如有任何见解,将不胜感激。

例如,以下是我的函数:

function archive_only() {
global $sidebar_id;
if($sidebar_id == "archives") {
echo "only show on archive sidebar"; 
    }
} add_action(\'cpress_sidebar_after\', \'archive_only\'); 
它在头版有效,但在其他任何页面都无效$侧边栏id在侧边栏模板文件中定义。

1 个回复
SO网友:MikeSchinkel

你好@orbit82:

在WordPress v3中搜索代码。0.4我找不到对全局$sidebar_id 所以我假设要么你的主题是在头版设置它,要么你使用的插件是在设置它。你能核实一下吗?

此外,我肯定会回应@prettyboymp的评论,即您应该使用以下条件标记is_single()is_archive(); 他们不为你工作有什么原因吗?以下是WordPress Codex上关于WordPress中可用的条件标记的参考:

结束

相关推荐