Docker系列 WordPress系列 WordPress目录结构

杜俊逸
2023-12-01

转自我的个人博客https://blognas.hwb0307.com。欢迎关注!

前言

经过《Docker系列 WordPress系列 安装WP Githuber MD》、《Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践》等地方的学习,我们已经掌握了博客写作的一些提高效率的技巧。相信你这个时候已经迫不及待地想要更进一步——搞一个漂亮的WordPress主题!

是的,我其实也很想讲WordPress主题了,毕竟那是建站最有趣的部分!不过在此之前,我觉得有一些东西你需要了解一下,那就是WordPress的目录结构

通过Shell,我们可以在一定程度上洞察WordPress是如何工作的。而且你可能会发现,它在本质上和Nextcloud、Chevereto这些应用的目录是十分相似的。这可能是由于它们都是基于PHP的吧!

下面我们快速地了解一些相关知识。GO!

WordPress目录

我们可以回看《Docker系列 WordPress系列 搭建WordPress个人博客》,看看它的yml文件的内容:

app:
    image: wordpress:latest
    restart: unless-stopped
    ports:
      - 4145:80  # 按需修改。与防火墙开放端口一致。
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: yourpassword # 按需修改
    volumes:
      - './app:/var/www/html'
    links:
      - db:db
    networks:
      - default

我们可以看到,在用Docker搭建的时候,我们将/var/www/html目录挂载到了.app里。所以我们就进去里面看一下。

设置一下全局路径:

html=~/docker/wordpress/app && cd $html

我们可以看一下一层目录:

tree -L 1

输出为:

├── index.php
├── license.txt
├── readme.html
├── wp-activate.php
├── wp-admin # 这是个文件夹
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config-docker.php
├── wp-config.php
├── wp-config-sample.php
├── wp-content # 这是个文件夹
├── wp-cron.php
├── wp-includes # 这是个文件夹
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php

下面我们选一些比较重要的文件进行说明。

wp-config文件

这是一个很重要的文件,可以更改一些默认设置。甚至和安全问题有关。

├── wp-config.php
├── wp-config-sample.php

wp-config-sample.php是一个示例文件,你可以在里面看到一些示例。实际生效的是wp-config.php。这个文件里有一些我曾经接触过的比较重要的项目。比如:

WP_DEBUG

define("WP_DEBUG", false);
define("WP_DEBUG_LOG", false);

如果这两项设置为true的话,这个日志可能会向公众发布你的网站信息。一般只有在网站调试的时候才可能用到。如果你用Wordfence的话,这一项会被定义为高危

WP_HOME/WP_SITEURL

另外还有一个,就是可以强行设置默认站点URL:

define('WP_HOME','http://localip:port');
define('WP_SITEURL','https://exampledomain.com');

我以前在无443端口的机器上需要用到这一项;在VPS里则不需要。

Proxy

// *配置HTTP代理服务器* //
define('WP_PROXY_HOST', '192.168.1.150');
define('WP_PROXY_PORT', '7890');
define('WP_PROXY_USERNAME', '');
define('WP_PROXY_PASSWORD', '');
define('WP_PROXY_BYPASS_HOSTS', 'localhost');

我是在网上偶然发现的,自己没有试过。也没搞懂它的应用场景。有大佬知道的不?

ALLOW_UNFILTERED_UPLOADS

如果设置:

define( 'ALLOW_UNFILTERED_UPLOADS', true);

你就可以在媒体库上传各种格式的文件。

xmlrpc.php文件

这个文件你平时是不会直接操作它的。不过,它却是很多自动同步(包括我们之前用到的m2w)可以成功的核心文件。

wp-content目录

total 24K
-rw-r--r-- 1 www-data www-data   28 Jan  9  2012 index.php
drwxr-xr-x 4 www-data www-data 4.0K Apr 27 09:17 languages
drwxr-xr-x 4 www-data www-data 4.0K Apr 27 10:44 plugins
drwxr-xr-x 6 www-data www-data 4.0K Apr 27 09:17 themes
drwxr-xr-x 2 www-data www-data 4.0K Apr 27 10:44 upgrade
drwxr-xr-x 3 www-data www-data 4.0K Apr 27 09:16 uploads

uploads文件夹存放的是你平时在多媒体里上传的图片。

themes是你所下载的主题所存放的位置。

plugins是你所下载的插件的位置

我正在运行的博客,这个目录下是这样的:

total 52K
-rw-r--r--  1 www-data www-data 1.2K Apr 21 14:01 advanced-cache.php
drwxr-xr-x  4 www-data www-data 4.0K Apr 27 14:17 cache
-rw-r--r--  1 www-data www-data   28 Jan  8  2012 index.php
drwxr-xr-x  4 www-data www-data 4.0K Apr 10 06:13 languages
drwxr-xr-x 19 www-data www-data 4.0K Apr 26 11:36 plugins
drwxr-xr-x  7 www-data www-data 4.0K Apr 12 16:39 themes
drwxr-xr-x  2 www-data www-data 4.0K Apr 26 11:36 upgrade
drwxr-xr-x  4 www-data www-data  12K Apr 26 13:33 uploads
drwxr-xr-x  2 www-data www-data 4.0K Apr 16 05:58 w3tc-config
drwxr-xr-x  2 www-data www-data 4.0K Apr 27 13:41 wflogs
-rw-------  1 www-data www-data 3.6K Apr 27 03:33 wp-cache-config.php

内容多了好多。这主要是有一些插件会在这个文件平里托管它们的源文件。

一个典型的theme

这里我以argon主题为例,它的文件还挺多的:

total 1000K
-rw-r--r-- 1 www-data www-data 4.8K Apr 11 08:13 404.php
-rw-r--r-- 1 www-data www-data  17K Apr 11 08:13 admin.css
-rw-r--r-- 1 www-data www-data 1.1K Apr 11 08:13 archive.php
-rw-r--r-- 1 www-data www-data  86K Apr 11 08:13 argontheme.js
drwxr-xr-x 8 www-data www-data 4.0K Apr 11 08:13 assets
-rw-r--r-- 1 www-data www-data  13K Apr 11 08:13 comments.php
-rw-r--r-- 1 www-data www-data  416 Apr 11 08:13 comments-shuoshuo-preview.php
-rw-r--r-- 1 www-data www-data 7.3K Apr 11 08:13 emotions.php
-rw-r--r-- 1 www-data www-data 7.3K Apr 17 06:32 footer.php
-rw-r--r-- 1 www-data www-data 111K Apr 18 16:21 functions.php
drwxr-xr-x 4 www-data www-data 4.0K Apr 11 08:13 gutenberg
-rw-r--r-- 1 www-data www-data  26K Apr 11 08:13 header.php
-rw-r--r-- 1 www-data www-data  675 Apr 11 08:13 index.php
-rw-r--r-- 1 www-data www-data  194 Apr 11 08:13 info.json
drwxr-xr-x 2 www-data www-data 4.0K Apr 11 08:13 languages
-rw-r--r-- 1 www-data www-data  35K Apr 11 08:13 LICENSE
-rw-r--r-- 1 www-data www-data 3.4K Apr 11 08:13 login.css
-rw-r--r-- 1 www-data www-data 1.2K Apr 11 08:13 msgboard.php
-rw-r--r-- 1 www-data www-data  533 Apr 11 08:13 page.php
-rw-r--r-- 1 www-data www-data  51K Apr 11 08:13 parsedown.php
-rw-r--r-- 1 www-data www-data 4.8K Apr 11 08:13 README_en.md
-rw-r--r-- 1 www-data www-data  28K Apr 11 08:13 README.md
-rw-r--r-- 1 www-data www-data 6.6K Apr 11 08:13 README_ru.md
-rw-r--r-- 1 www-data www-data 4.7K Apr 11 08:13 README_tw.md
-rw-r--r-- 1 www-data www-data 113K Apr 11 08:13 screenshot.png
-rw-r--r-- 1 www-data www-data  687 Apr 11 08:13 searchform.php
-rw-r--r-- 1 www-data www-data 2.7K Apr 11 08:13 search.php
-rw-r--r-- 1 www-data www-data 152K Apr 11 08:13 settings.php
-rw-r--r-- 1 www-data www-data 1.2K Apr 11 08:13 shuoshuo.php
-rw-r--r-- 1 www-data www-data  14K Apr 12 02:36 sidebar.php
-rw-r--r-- 1 www-data www-data 4.0K Apr 11 08:13 single.php
-rw-r--r-- 1 www-data www-data  544 Apr 11 08:13 single-shuoshuo.php
drwxr-xr-x 4 www-data www-data 4.0K Apr 11 08:13 stickers
-rw-r--r-- 1 www-data www-data 146K Apr 12 03:28 style.css
drwxr-xr-x 2 www-data www-data 4.0K Apr 11 08:13 template-parts
drwxr-xr-x 8 www-data www-data 4.0K Apr 11 08:13 theme-update-checker
-rw-r--r-- 1 www-data www-data  594 Apr 11 08:13 timeline.php
-rw-r--r-- 1 www-data www-data 3.3K Apr 11 08:13 unsubscribe-comment-mailnotice.php
-rw-r--r-- 1 www-data www-data  59K Apr 11 08:13 useragent-parser.php

其中footer.phpfunctions.php文件经常可以被魔改,以实现一些特效,比如本博客的页面雪花、点击特效、看板娘(就是那个猫猫)。

小结

这一部份不是很重要,大家了解一下即可。和这部分相关的内容,在以后的具体实现时会再提起。暂时就这样!

更多WordPress配置持续关注吧!

 类似资料: