不太懂php,问一个关于wordpress的问题
这句代码报错的
页面上报错:
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试试
index.php
有引入那个函数
而blog.php没有
你把index.php里面的一些require也加到blog.php试试
好像没有引入什么的
PHP怎么引入函数啊
而且 wordpress中的wp_list_cats函数在什么地方 ?
总之,有人家的东西,就得守人家的规矩
总之,有人家的东西,就得守人家的规矩
可是应该怎么做?
解决了
在要调用函数的文件的前面加上 或者
路径由自己定 不过我有几个疑问
1. require 和 require_once 有什么区别 都是调用函数的 语法也是一样的 使用起来页面上没有看出区别。
2. php中怎么获得上一级目录,用绝对路径不是很理想,../ 好像不对哦
3. 调用wp_list_cats()函数以后,会出现 “页面”??“实例页面”这样的链接,怎么去掉
4. wp_list_cats()函数的源代码在哪里?
require_once就是php的引用啊
好比c的include
http://www.csharpwin.com/dotnetspace/5716r9253.shtml lz可以看看这个 require_once() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
嘿 .. 谢谢大家 .. 明白的差不多了 ..
php怎么获得上一级目录啊,比如要在D:/phpnow/htdocs/mulan/wp-content/themes/my/index.php文件中表示D:/phpnow/htdocs/mulan/wp-blog-header.php文件
../写是可以的,只不过这个相对路径是根据你当前运行的脚本的相对路径。如果你确认要引用的文件在上一层目录,那么很可能实际执行的那个页面不是你预期的那个。
举个例子:
目录结构:
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来动态返回物理路径再拼凑出绝对路径。
上面有句话错了:
所以实际中我们都喜欢用绝对路径。或者用realpath、dirname等等动态获取相对路径。
关于require 和 require_once 有什么区别,具体区别你可以自己搜一下,到处都是说这个的,我就不阐述了。不过要告诉你的是实际项目中最好用require和include,不要用带once的那个,带once的只是让php本身避免一些重复包含的错误,但这会大大降低效率。而这些问题如果程序猿本身素质够高的话都是可以避免的,没必要让php降低性能去做这件事。
至于3、4两个问题,都属于wordpress系统本身的问题,严格来讲不属于php的范畴,你去他们官方论坛求助会比在这里问效果好很多。