wordpress入门基础:wordpress文件系统结构详细介绍

根目录
|
|

wp-admin — wp-content — wp-includes
|                    |        |_________________________________________
|                    |________________________                                                         |
|                                                                     |                                                        |

css — images — includes — js — maint       languages — plugins — themes         images — js — pomo — Text — theme-compat
|
Diff
|
Engine — Renderer

 

 

根目录

1.index.php:WordPress核心索引文件,即博客输出文件。

2.license.txt:WordPress GPL许可证文件。

3.my-hacks.php:定义了博客输出之前处理的追加程序。默认安装中并没有这个文件,但如果存在,它就会被管理页面引用。

4.readme.html:WordPress安装导言。

5.wp-atom.php:输出Atom信息聚合内容。

6.wp-blog-header.php:根据博客参数定义博客页面显示内容。

7.wp-cron.php

8.wp-comments-post.php:接收评论,并把其添加到数据库。

9.wp-commentsrss2.php:用来生成日志评论的RSS2信息聚合内容。

10.wp-config-sample.php:把WordPress连接到MySQL数据库的示例配置文件。

11.wp-config.php:这是真正把WordPress连接到MySQL数据库的配置文件。默认安装中虽不包括它,但由于WordPress运行需要这一文件,因此,用户需要编辑这个文件以更改相关设置。

12.wp-feed.php:根据请求定义feed类型并其返回feed请求文件。

13.wp-links-opml.php:生成OPML格式的链接(通过WordPress管理菜单添加)列表。

14.wp-login.php:定义注册用户的登陆页面。

15.wp-mail.php:用来获取通过邮件提交的博文。这个文件的URL通常被添加到cron任务中,这样cron就会定期检索文件并接收邮件日志。

16.wp-pass.php:审核受密码保护文章的密码并显示被保护文章。

17.wp-rdf.php:生成RDF信息聚合内容。

18.wp-register.php:允许新用户通过联机表单注册用户名。

19.wp-rss.php:生成RSS信息聚合内容。

20.wp-rss2.php:生成RSS2信息聚合内容。

21.wp-settings.php:运行执行前的例行程序,包括检查安装是否正确,使用辅助函数,应用用户插件,初始化执行计时器等等。

22.wp-trackback.php:处理trackback请求。

23.wp.php:显示博客日志的简单模板。并没有什么神奇之处,但包括了部分index.php内容。

24.xmlrpc.php:处理xmlrpc请求。用户无需通过内置的网络管理界面就可发布文章。

wp-admin

1.wp-admin/admin.php:管理文件的核心文件。用来连接数据库,整合动态菜单数据,显示非核心控制页面等。

2.wp-admin/admin-db.php

3.wp-admin/admin-footer.php:定义所有管理控制台的页脚。

4.wp-admin/admin-functions.php:定义了管理控制台使用的多种函数。5.wp-admin/admin-header.php:定义了管理控制台的上半部分内容,包括菜单逻辑 (menu logic)的 menu-header.php文件。

6.wp-admin/bookmarklet.php:使用书签功能时,定义弹出页面。撰写日志时使用默认的edit-form.php文件。

7.wp-admin/categories.php:定义管理页面的类别管理。参考: Manage – Categories

8.wp-admin/cat-js.php

9.wp-admin/edit.php:定义管理页面的日志管理。参考:  Manage – Posts

10.wp-admin/edit-comments.php:定义管理页面的评论管理。参考:  Manage – Comments

11.wp-admin/edit-form-advanced.php:定义管理页面的日志高级编辑形式管理,包括post.php。参考:  Write – Write Post – Advanced

12.wp-admin/edit-form.php:定义管理页面的日志简单编辑形式管理,包括post.php。参考:  Write – Write Post

13.wp-admin/edit-form-comment.php:编辑特定日志评论。

14.wp-admin/edit-form-ajax-cat.php

15.wp-admin/edit-link-form.php

16.wp-admin/edit-page-form.php:定义管理模块页面的页面编辑,包括post.php和page-new.php。参考: Write – Write Page

17.wp-admin/edit-pages.php:定义管理模块页面的页面管理。参考:  Manage – Pages

18.wp-admin/execute-pings.php

19.wp-admin/import.php

20.wp-admin/index.php:默认管理页面。根据用户请求显示相应的页面。

21.wp-admin/inline-uploading.php

22.wp-admin/install-helper.php:定义数据库维护函数,包括popular-in-plugins maybe_create_table() 和maybe_add_column()。

23.wp-admin/install.php:安装WordPress。

24.wp-admin/link-add.php:链接添加。参考:  Links – Add Link

25.wp-admin/link-categories.php:链接分类管理。参考: Links – Link Categories

26.wp-admin/link-import.php:导入链接。参考: Links – Import Links

27.wp-admin/link-manager.php:链接管理。参考:  Links – Manage Links

28.wp-admin/link-parse-opml.ph:导入链接时,用来解析OPML文件。

29.wp-admin/list-manipulation.js

30.wp-admin/list-manipulation.php

31.wp-admin/menu-header.php:用于在管理界面显示菜单。

32.wp-admin/menu.php:定义了默认管理菜单结构。

33.wp-admin/moderation.php:定义了评论审核函数。

34.wp-admin/options.php:升级后,用来更改所有设置。

35.wp-admin/options-discussion.php:管理评论和trackback相关选项。参考:  Options – Discussion

36.wp-admin/options-general.php:管理基本配置选项。参考: Options – General

37.wp-admin/options-head.php

38.wp-admin/options-misc.php:设置文件上传,链接跟踪,自定义”hacks”等相关选项。参考:Options – Miscellaneous

39.wp-admin/options-permalink.php:管理永久链接选项。参考: Options – Permalinks

40.wp-admin/options-reading.php:设置如何把网站信息发送到读者浏览器或其它应用程序。参考: Options – Reading

41.wp-admin/options-writing.php:管理日志撰写界面。参考:Options – Writing

42.wp-admin/page-new.php:创建新页面。

43.wp-admin/plugin-editor.php:编辑插件文件。

44.wp-admin/plugins.php:管理插件。

45.wp-admin/post.php:创建新日志。

46.wp-admin/profile-update.php

47.wp-admin/profile.php:管理个人资料或配置。

48.wp-admin/setup-config.php:安装时,用来创建wp-config.php文件。

49.wp-admin/sidebar.php

50.wp-admin/templates.php:编辑服务器可写文件。

51.wp-admin/theme-editor.php:编辑特定主题中的文件。

52.wp-admin/themes.php:管理主题。

53.wp-admin/update-links.php

54.wp-admin/upgrade-functions.php:定义了版本升级函数。

55.wp-admin/upgrade-schema.php:定义了升级中使用的默认表格结构和选项。

56.wp-admin/upgrade.php:版本升级。

57.wp-admin/user-edit.php:编辑用户。

58.wp-admin/users.php:管理用户。

59.wp-admin/wp-admin.css:定义了管理控制台的默认样式表。

60.wp-admin/xfn.js

wp-includes

1.wp-includes/cache.php

2.wp-includes/capabilities.php

3.wp-includes/class-IXR.php:Incutio XML-RPC库。包括了 XML RPC支持函数。由http://scripts.incutio.com/xmlrpc/提供支持。

4.wp-includes/classes.php:包括了基本的类,如核心文章提取机制WP_Query和改写管理WP_Rewrite。

5.wp-includes/class-pop3.php:包括了支持使用POP邮箱的类。可供wp-mail.php 使用。

6.wp-includes/class-snoopy.php:Snoopy是一个PHP类,用来模仿Web浏览器的功能,它能自动完成检索网页和发送表单的任务。

7.wp-includes/comment-functions.php

8.wp-includes/default-filters.php

9.wp-includes/feed-functions.php

10.wp-includes/functions-compat.php:即新版本PHP中用来支持老版本PHP的函数文件。

11.wp-includes/functions-formatting.php:用于清理XHTML和用特定字符集正确格式化文本。

12.wp-includes/functions-post.php:定义了在数据库中管理日志,查询用户权限,提取和撰写评论等函数。

13.wp-includes/functions.php:包含许多重要的支持函数,它是WordPress中最大的文件,函数数量几乎是第二大文件的两倍。

14.wp-includes/gettext.php:PHP-gettext GPL 翻译库组成部分。

15.wp-includes/kses.php:用来渲染和过滤日志或评论中的HTML。

16.wp-includes/links.php:用来管理和使用WordPress的链接功能。

17.wp-includes/locale.php:用来替代默认的星期和月份值。

18.wp-includes/pluggable-functions.php

19.wp-includes/registration-functions.php

20.wp-includes/rss-functions.php

21.wp-includes/streams.php:定义了包装文件流和字符流的类。

22.wp-includes/template-functions-author.php:包含了与日志作者或评论人相关的主题函数。

23.wp-includes/template-functions-category.php:包含了与类别相关的主题函数。

24.wp-includes/template-functions-comment.php:包含了与评论相关的主题函数。

25.wp-includes/template-functions-general.php:包含了常规主题函数。

26.wp-includes/template-functions-links.php:包含了与链接相关的主题函数。

27.wp-includes/template-functions-post.php:包含了与日志相关的主题函数。

28.wp-includes/template-functions.php:包含了以上所有”template-”文件。

29.wp-includes/template-loader.php

30.wp-includes/vars.php:用来设置杂项变量。

31.wp-includes/version.php:用来设置当前使用的WordPress版本。

32.wp-includes/wp-db.php:包含了用来连接MySQL数据库的函数。

33.wp-includes/wp-l10n.php:提供支持多语言版本的函数。

 

InnoDB 还是 MyISAM?

MyISAM存储引擎

       MyISAM是 默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。MyISAM存储引擎的一些特征:
·      所有数据值先存储低字节。这使得数据机和操作系统分离。二进制轻便性的唯一要求是机器使用补码(如最近20年的机器有的一样)和IEEE浮点格式(在主流机器中也完全是主导的)。唯一不支持二进制兼容性的机器是嵌入式系统。这些系统有时使用特殊的处理器。

·        先存储数据低字节并不严重地影响速度;数据行中的字节一般是未联合的,从一个方向读未联合的字节并不比从反向读更占用更多的资源。服务器上的获取列值的代码与其它代码相比并不显得时间紧。

·        大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持。

·         当把删除和更新及插入混合的时候,动态尺寸的行更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块来自动完成。

·         每个MyISAM表最大索引数是64。 这可以通过重新编译来改变。每个索引最大的列数是16个。

·         最大的键长度是1000字节。这也可以通过编译来改变。对于键长度超过250字节的情况,一个超过1024字节的的键块被用上。

·         BLOB和TEXT列可以被索引。

·         NULL值被允许在索引的列中。这个占每个键的0-1个字节。

·         所有数字键值以高字节为先被存储以允许一个更高地索引压缩。

·        当记录以排好序的顺序插入(就像你使用一个AUTO_INCREMENT列之时),索引树被劈开以便高节点仅包含一个键。这改善了索引树的空间利用率。

·         每表一个AUTO_INCREMEN列的内部处理。MyISAM为INSERT和UPDATE操作自动更新这一 列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索 引的最后一列,可以出现重使用从序列顶部删除的值的情况 )。AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置。

·         如果数据文件中间的表没有自由块了,在其它线程从表读的同时,你可以INSERT新行到表中。(这被认识为并发操作 )。自由块的出现是作为删除行的结果,或者是用比当前内容多的数据对动态长度行更新的结果。当所有自由块被用完(填满),未来的插入又变成并发。

·         你可以把数据文件和索引文件放在不同目录,用DATA DIRECTORY和INDEX DIRECTORY选项CREATE TABLE以获得更高的速度。

·         每个字符列可以又不同的字符集。

·         在MyISAM索引文件里又一个标志,它表明表是否被正确关闭。如果用–myisam-recover选项启动mysqld,MyISAM表在打开得时候被自动检查,如果被表被不恰当地关闭,就修复表。

·         如果你用–update-state选项运行myisamchk,它标注表为已检查。myisamchk –fast只检查那些没有这个标志的表。

·         myisamchk –analyze为部分键存储统计信息,也为整个键存储统计信息。

·         myisampack可以打包BLOB和VARCHAR列。

MyISAM也支持下列特征:

·         支持true VARCHAR类型;VARCHAR列以存储在2个字节中的长度来开始。

·         有VARCHAR的表可以有固定或动态记录长度。

·         VARCHAR和CHAR列可以多达64KB。

·         一个被搞乱的已计算索引对可对UNIQUE来使用。这允许你在表内任何列的合并上有UNIQUE。(尽管如此,你不能在一个UNIQUE已计算索引上搜索)。

InnoDB存储引擎

InnoDB给MySQL提供 了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非 锁定读。这些特色增加 了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。InnoDB是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。 InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在 分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。

InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的 默认表。

InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在 InnoDB上。Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的负荷。

InnoDB和MyISAM的区别

区别概述:

MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。

下面先让我们回答一些问题:

  • 你的数据库有外键吗?
  • 你需要事务支持吗?
  • 你需要全文索引吗?
  • 你经常使用什么样的查询模式?
  • 你的数据有多大?

 

思考上面这些问题可以让你找到合适的方向,但那并不是绝对的。如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。如果你需要全文索引,那么通常来说 MyISAM是好的选择,因为这是系统内建的,然而,我们其实并不会经常地去测试两百万行记录。所以,就算是慢一点,我们可以通过使用Sphinx从 InnoDB中获得全文索引。

数据的大小,是一个影响你选择什么样存储引擎的重要因素,大尺寸的数据集趋向于选择InnoDB方式,因为其支持事务处理和故障恢复。数据库的在小 决定了故障恢复的时间长短,InnoDB可以利用事务日志进行数据恢复,这会比较快。而MyISAM可能会需要几个小时甚至几天来干这些事,InnoDB 只需要几分钟。

您操作数据库表的习惯可能也会是一个对性能影响很大的因素。比如: COUNT() 在 MyISAM 表中会非常快,而在InnoDB 表下可能会很痛苦。而主键查询则在InnoDB下会相当相当的快,但需要小心的是如果我们的主键太长了也会导致性能问题。大批的inserts 语句在MyISAM下会快一些,但是updates 在InnoDB 下会更快一些——尤其在并发量大的时候。

所以,到底你检使用哪一个呢?根据经验来看,如果是一些小型的应用或项目,那么MyISAM 也许会更适合。当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的。如果你正在计划使用一个超大数据量的项目,而且需要事务处理或外键支持,那么你真的应该直接使用InnoDB方 式。但需要记住InnoDB 的表需要更多的内存和存储,转换100GB 的MyISAM 表到InnoDB 表可能会让你有非常坏的体验。

区别总结:

1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

 

提升InnoDB性能的方法:

MyISAM和InnoDB存储引擎性能差别并不是很大,针对InnoDB来说,影响性能的主要是 innodb_flush_log_at_trx_commit 这个选项,如果设置为1的话,那么每次插入数据的时候都会自动提交,导致性能急剧下降,应该是跟刷新日志有关系,设置为0效率能够看到明显提升,当然,同 样你可以SQL中提交“SET AUTOCOMMIT = 0”来设置达到好的性能。另外,还听说通过设置innodb_buffer_pool_size能够提升InnoDB的性能,但是我测试发现没有特别明显 的提升。

基本上我们可以考虑使用InnoDB来替代我们的MyISAM引擎了,因为InnoDB自身很多良好的特点,比如事务支持、存储 过程、视图、行级锁定等等,在并发很多的情况下,相信InnoDB的表现肯定要比MyISAM强很多,当然,相应的在my.cnf中的配置也是比较关键 的,良好的配置,能够有效的加速你的应用。
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。

MyISAM InnoDB 区别

MyISAM 和 InnoDB 讲解

  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

  以下是一些细节和具体实现的差别:

  ◆1.InnoDB不支持FULLTEXT类型的索引。

  ◆2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。

  ◆3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

  ◆4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

  ◆5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

  另外,InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

  两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。

  我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是我的首选。

  原因如下:

  1、首先我目前平台上承载的大部分项目是读多写少的项目,而MyISAM的读性能是比Innodb强不少的。

  2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。

  3、从平台角度来说,经常隔1,2个月就会发生应用开发人员不小心update一个表where写的范围不对,导致这个表没法正常用了,这个时候MyISAM的优越性就体现出来了,随便从当天拷贝的压缩包取出对应表的文件,随便放到一个数据库目录下,然后dump成sql再导回到主库,并把对应的binlog补上。如果是Innodb,恐怕不可能有这么快速度,别和我说让Innodb定期用导出xxx.sql机制备份,因为我平台上最小的一个数据库实例的数据量基本都是几十G大小。

  4、从我接触的应用逻辑来说,select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对它主键是有效,非主键的都会锁全表的。

  5、还有就是经常有很多应用部门需要我给他们定期某些表的数据,MyISAM的话很方便,只要发给他们对应那表的frm.MYD,MYI的文件,让他们自己在对应版本的数据库启动就行,而Innodb就需要导出xxx.sql了,因为光给别人文件,受字典数据文件的影响,对方是无法使用的。

  6、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表架构来解决。

  7、如果是用MyISAM的话,merge引擎可以大大加快应用部门的开发速度,他们只要对这个merge表做一些select count(*)操作,非常适合大项目总量约几亿的rows某一类型(如日志,调查统计)的业务表。

  当然Innodb也不是绝对不用,用事务的项目如模拟炒股项目,我就是用Innodb的,活跃用户20多万时候,也是很轻松应付了,因此我个人也是很喜欢Innodb的,只是如果从数据库平台应用出发,我还是会首选MyISAM。

  另外,可能有人会说你MyISAM无法抗太多写操作,但是我可以通过架构来弥补,说个我现有用的数据库平台容量:主从数据总量在几百T以上,每天十多亿 pv的动态页面,还有几个大项目是通过数据接口方式调用未算进pv总数,(其中包括一个大项目因为初期memcached没部署,导致单台数据库每天处理 9千万的查询)。而我的整体数据库服务器平均负载都在0.5-1左右。

WordPress登陆文件wp-login.php添加相关参数,安全有保障

只需要在主题的funtions.php 的最后一个 ?> 前文件添加以下代码就可以了:

//wp-login.php添加相关参数 devework.com
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
    if($_GET['love'] != 'someone')header('Location: http://www.dammit.hk/');
}

 

按照上面的代码,你的WordPress 登陆地址应该是 http://域名/wp-login.php?love=someone 。?love=someone就是参数名,这段代码的作用大概就是通过获取文件头,如果没有参数?love=someone,那么就跳转到http://www.dammit.hk/。

你可以修改的地方就是第四行的 love、someone以及http://www.dammit.hk/。

这样一来,安全性就大大提高了。而且不要向上次的那样修改WordPress本身的代码,只需要在主题那里添加就可以了。

WordPress自定义上传路径 和 生成文件的URL地址

WordPress 3.5以上的版本,隐藏了后台的媒体(Media)设置页面 上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定,如下图为之前版本的设置界面:

设置界面

通过这里的设置,你可以自定义文件保存的位置,和生成的地址,这个功能是比较不错的,就是不知道为啥要隐藏。如果你还是需要自定义,可以试试下面的方法。

直接将下面的代码添加到主题的 functions.php,就可以恢复设置界面了:

//找回上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
	update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}

通过代码直接定义

将下面的代码添加到主题的 functions.php 的最后一个 ?> 前面:

add_filter( 'upload_dir', 'wpjam_custom_upload_dir' );
function wpjam_custom_upload_dir( $uploads ) {
	$upload_path = '';
	$upload_url_path = '';

	if ( empty( $upload_path ) || 'wp-content/uploads' == $upload_path ) {
		$uploads['basedir']  = WP_CONTENT_DIR . '/uploads';
	} elseif ( 0 !== strpos( $upload_path, ABSPATH ) ) {
		$uploads['basedir'] = path_join( ABSPATH, $upload_path );
	} else {
		$uploads['basedir'] = $upload_path;
	}

	$uploads['path'] = $uploads['basedir'].$uploads['subdir'];

	if ( $upload_url_path ) {
		$uploads['baseurl'] = $upload_url_path;
		$uploads['url'] = $uploads['baseurl'].$uploads['subdir'];
	}
	return $uploads;
}

注意修改第3、4行中$upload_path 和 $upload_url_path ,例如

$upload_path = 'img';
$upload_url_path = 'http://pic.dammit.hk';

 

 

2025 年 5 月
 1234
567891011
12131415161718
19202122232425
262728293031  

广告

分类

近期评论

标签

历史上的今天

归档