关键字:wordpress 主题开发
https://www.wpdaxue.com/wordpress-theme-development.html
https://www.wpdaxue.com/docs/theme-handbook/getting-started/theme-development-examples
压缩页面HTML
生成谷歌站点地图
缓存使用
加速使用
清理无效的Posts,自动草稿,修订版本
批量移动Posts到指定分类
https://www.themege.com/downloads/fixed-toc-wordpress-plugin/
生成文章内容的目录导航
安全插件
还有一种插件,暂时没找到,生成文章的导航链接
WordPress-官方网址
WordPress-数据库设计 wordpress db schema
https://codex.wordpress.org/Database_Description
https://codex.wordpress.org/zh-cn:%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8F%8F%E8%BF%B0
WordPress项目源代码
https://wordpress.org/download/source/
WordPress代码参考
https://developer.wordpress.org/reference/
WordPress服务器安装要求
https://wordpress.org/about/requirements/
PHP version 7.4 or greater.
MySQL version 5.6 or greater OR MariaDB version 10.1 or greater.
HTTPS support
WordPress支持–基础
相关链接
https://zhan.leiue.com/wordpress-rename-images.html
https://zmingcx.com/wordpress-upload-file-renaming.html
关键字:wordpress 上传图片重命名
使用方法
将代码添加到当前主题functions.php模板文件中即可
代码一,按时间重命名
上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20161023122221765.jpg”
//上传文件重命名
function git_upload_filter($file) {
$time = date("YmdHis");
$file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'git_upload_filter');
代码二,用MD5加密生成数字并重命名
名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);
其他代码
//根据上传时间重命名文件
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
$info = pathinfo($file['name']);
$ext = $info['extension'];
$filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数
$file['name'] = $filedate.'.'.$ext;
return $file;
}
//使用md5转码文件名
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
$info = pathinfo($file['name']);
$ext = '.' . $info['extension'];
$md5 = md5($file['name']);
$file['name'] = $md5.$ext;
return $file;
}
关键字:taxonomy
相关链接:https://10.1pxeye.com/difference-between-taxonomy-category-term/
https://wordpress.org/support/article/taxonomies/
我们在刚开始学习编写wordpress主题时,常常分不清taxonomy, category, term的区别。
在这里我也是按我的理解做一下讲解。
我们分不清taxonomy与category的原因,主要在于它们俩在中文中的意思都是分类(类别)。
首先taxonomy是包含category的,但是category不包含taxonomy。
即,taxonomy之间没有明显的共性。而category有。
举例:
树和狗是两个taxonomy(种类)。它们没有共性。
而树可以分为松,白桦,苹果树…而这些松,白桦,苹果树…就是categoies(类别)。
同样狗分为:拉波拉多,柯基,哈士奇…都是category(类别)。
这就是taxonomy和category的主要区别。
term跟category几乎是一样的。
但是term的作用范围稍大一些。
term和category的区别:
category是wordpress的默认类别。
而term可以是自定义分类下的类别。
即:
taxonomy下可以是category,也可以是term。
custom taxonomy(自定义文章分类)下的类别叫term。而不是category。
示意图:
命令行导出脚本
mysqldump -h localhost -u root -pfn5ywdhfmHGp5dBP zencart >/root/zencart.sql
/www/server/mysql/bin/mysqldump -h localhost -u root -p37ee20e21e21483a wplzqltt > /root/wplzqltt.sql
/www/server/mysql/bin/mysqldump -h localhost -u root -p7NikcJHBhiW3fBy3 wphxztny > /root/wphxztny.sql
复制程序
\cp -rf /root/wp_master/* /www/wwwroot/www.xkthimh.com
更改所有者
chown -R www:www /www/wwwroot/www.xkthimh.com/
更新配置
读取 /root/wp_master/wp-config.php
替换 数据库名字
写入 /www/wwwroot/www.xkthimh.com/wp-config.php
完成
sed -n 's/wplzqltt/wpxkthimh/g' /root/wp_master/wp-config.php
sed 's/wplzqltt/wpxkthimh/g' /root/wp_master/wp-config.php > /www/wwwroot/www.xkthimh.com/wp-config.php
修改wp-config.php 权限
chmod 666 /www/wwwroot/www.xkthimh.com/wp-config.php
导入数据库
替换域名
/www/server/mysql/bin/mysql -u root -p37ee20e21e21483a wpxkthimh < /root/sql/xkthimh.sql
总结
用以下五条删除命令,可以清理wordpress中大部分无用的数据,测试通过直接使用
SELECT * FROM `wp_posts` WHERE `post_title`='自动草稿';
delete from wp_posts WHERE `post_title`='自动草稿';
SELECT * FROM `wp_posts` WHERE `post_name` like '%-revision-%';
delete from wp_posts WHERE `post_name` like '%-revision-%';
SELECT * FROM `wp_posts` WHERE `post_status`='auto-draft';
delete from `wp_posts` WHERE `post_status`='auto-draft';
SELECT * FROM `wp_posts` WHERE `post_type`='revision';
delete from `wp_posts` WHERE `post_type`='revision';
delete FROM wp_postmeta WHERE meta_key = '_edit_lock';
delete FROM wp_postmeta WHERE meta_key = '_edit_last';
SELECT count(ID) FROM `wp_posts`;