日期:2014-05-17  浏览次数:20430 次

不太懂php,问一个关于wordpress的问题
<?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0'); ?>
这句代码报错的 

页面上报错:
Fatal error: Call to undefined function wp_list_cats() in D:\phpnow\htdocs\mulan\wp-content\themes\muse\blog.php on line 48
意思好象是wp_list_pages()函数未定义。

想要自己用html css javascript写模板
index.php链接到blog.php时,在blog.php中调用就报错了 
但是如果直接在index.php中调用就很正常,index.php和blog.php在同一个目录下,不明白是为什么。

------解决方案--------------------
index.php
有引入那个函数
而blog.php没有

你把index.php里面的一些require也加到blog.php试试
------解决方案--------------------
require_once就是php的引用啊

好比c的include
------解决方案--------------------
http://www.csharpwin.com/dotnetspace/5716r9253.shtml  lz可以看看这个   require_once() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。 


------解决方案--------------------
../写是可以的,只不过这个相对路径是根据你当前运行的脚本的相对路径。如果你确认要引用的文件在上一层目录,那么很可能实际执行的那个页面不是你预期的那个。

举个例子:

目录结构:
test/1/a.php
test/2/b.php
test/2/c.php


a.php
-----------
require '../2/c.php';


b.php
-----------
echo $a;


c.php
-----------
$a = 123;


运行http://localhost/b.php

你可能会认为没错,因为c.php相对于a.php来说确实是../2/c.php这样的路径。不过很可惜,你实际执行的是b.php,那么当前脚本的目录和c.php处于相同目录。所以a.php中要引用c.php应该写为:
./c.php或c.php

这就是相对路径的坏处,当有文件相互引用时,相对路径会让逻辑看起来一塌糊涂。所以实际中我们都喜欢用相对路径。但直接写磁盘物理路径也不好,等你项目迁移了,那物理路径也许会变。

最好的写法是基于web根目录的绝对路径。
也就是以/开头,这个/就是你的网站根目录,然后向下写绝对路径。
或者用realpath和dirname来动态返回物理路径再拼凑出绝对路径。