1、WordPress 管理员邮箱地址更换操作,去数据库执行指令
UPDATE wp_options
SET option_value = '你的邮箱@gmail.com'
WHERE option_name = 'admin_email';
DELETE FROM wp_options
WHERE option_name = 'new_admin_email';
2、WordPress新上传图片中文文件名自动转拼音英文
复制下面代码到主题文件中 functions.php
// 新上传图片:中文文件名自动转拼音/英文 URL
add_filter( 'sanitize_file_name', function ( $filename, $filename_raw ) {
$ext = strtolower( pathinfo( $filename_raw, PATHINFO_EXTENSION ) );
$name = pathinfo( $filename_raw, PATHINFO_FILENAME );
// 需要服务器开启 PHP intl 扩展
if ( function_exists( 'transliterator_transliterate' ) ) {
$name = transliterator_transliterate(
'Any-Latin; Latin-ASCII; [:Nonspacing Mark:] Remove; Lower()',
$name
);
} else {
// 如果服务器没有 intl 扩展,就去掉非英文字符
$name = preg_replace( '/[^\x20-\x7E]/u', '', $name );
}
$name = strtolower( $name );
$name = preg_replace( '/[^a-z0-9]+/', '-', $name );
$name = trim( $name, '-' );
if ( $name === '' ) {
$name = 'image-' . substr( md5( $filename_raw . microtime() ), 0, 8 );
}
return $ext ? $name . '.' . $ext : $name;
}, 10, 2 );
3、WordPress 网站后台增加类似文章菜单的产品菜单代码
复制下面代码到主题文件中 functions.php
// 注册“产品”自定义文章类型 + “产品分类”
add_action('init', function () {
// 1) 注册产品分类(产品分类)
$tax_labels = [
'name' => '产品分类',
'singular_name' => '产品分类',
'search_items' => '搜索产品分类',
'all_items' => '所有产品分类',
'parent_item' => '父级产品分类',
'parent_item_colon' => '父级产品分类:',
'edit_item' => '编辑产品分类',
'update_item' => '更新产品分类',
'add_new_item' => '新增产品分类',
'new_item_name' => '新产品分类名称',
'menu_name' => '产品分类',
];
register_taxonomy('product_cat', ['product'], [
'hierarchical' => true, // true = 类似分类;false = 类似标签
'labels' => $tax_labels,
'show_ui' => true,
'show_admin_column' => true,
'rewrite' => ['slug' => 'products', 'with_front' => false],
'show_in_rest' => true, // Gutenberg/REST 支持
]);
// 2) 注册产品(自定义文章类型)
$labels = [
'name' => '产品',
'singular_name' => '产品',
'menu_name' => '产品',
'name_admin_bar' => '产品',
'add_new' => '新增产品',
'add_new_item' => '新增产品',
'new_item' => '新产品',
'edit_item' => '编辑产品',
'view_item' => '查看产品',
'all_items' => '所有产品',
'search_items' => '搜索产品',
'not_found' => '未找到产品',
'not_found_in_trash' => '回收站中未找到产品',
];
register_post_type('product', [
'labels' => $labels,
'public' => true, // 前台可访问
'show_ui' => true, // 后台显示
'show_in_menu' => true, // 生成顶级“产品”菜单
'menu_position' => 5, // 菜单位置(可改)
'menu_icon' => 'dashicons-cart', // 图标(可改)
'supports' => ['title','editor','thumbnail','excerpt'],
'has_archive' => true,
'rewrite' => ['slug' => 'product'],
'taxonomies' => ['product_cat'], // 关联产品分类
'show_in_rest' => true, // Gutenberg/REST 支持
]);
}, 0);
WordPress后台新增产品功能菜单代码 二
/**
* 注册“产品”菜单
*/
add_action('init', 'zc_register_product_post_type');
function zc_register_product_post_type() {
register_post_type('product', array(
'labels' => array(
'name' => '产品',
'singular_name' => '产品',
'menu_name' => '产品',
'all_items' => '所有产品',
'add_new' => '新增产品',
'add_new_item' => '新增产品',
'edit_item' => '编辑产品',
'new_item' => '新产品',
'view_item' => '查看产品',
'search_items' => '搜索产品',
'not_found' => '没有找到产品',
'not_found_in_trash' => '回收站中没有产品',
),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 6,
'menu_icon' => 'dashicons-cart',
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'custom-fields'
),
'has_archive' => true,
'rewrite' => array(
'slug' => 'products'
),
'show_in_rest' => true,
));
/**
* 产品分类
*/
register_taxonomy('product_category', array('product'), array(
'labels' => array(
'name' => '产品分类',
'singular_name' => '产品分类',
'menu_name' => '产品分类',
'all_items' => '所有产品分类',
'edit_item' => '编辑产品分类',
'update_item' => '更新产品分类',
'add_new_item' => '新增产品分类',
'new_item_name' => '新产品分类名称',
'search_items' => '搜索产品分类',
),
'hierarchical' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_rest' => true,
'rewrite' => array(
'slug' => 'product-category'
),
));
/**
* 产品标签
*/
register_taxonomy('product_tag', array('product'), array(
'labels' => array(
'name' => '产品标签',
'singular_name' => '产品标签',
'menu_name' => '产品标签',
'all_items' => '所有产品标签',
'edit_item' => '编辑产品标签',
'update_item' => '更新产品标签',
'add_new_item' => '新增产品标签',
'new_item_name' => '新产品标签名称',
'search_items' => '搜索产品标签',
'popular_items' => '热门产品标签',
'separate_items_with_commas' => '多个标签请用英文逗号分隔',
),
'hierarchical' => false,
'show_ui' => true,
'show_admin_column' => true,
'show_in_rest' => true,
'rewrite' => array(
'slug' => 'product-tag'
),
));
}
方法三
作为独立插件使用。新建文件:
/wp-content/plugins/custom-products/custom-products.php
粘贴以下完整代码后,到后台“插件”启用即可。激活时会注册产品类型和分类,并刷新固定链接规则;停用时只移除规则,不删除已录入的产品数据。
<?php
/**
* Plugin Name: 自定义产品管理
* Description: 注册“产品”自定义文章类型和“产品分类”层级分类法。
* Version: 1.0.0
* Author: Your Company
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* 注册产品自定义文章类型及产品分类。
*/
function mysite_register_products() {
/**
* 1. 注册“产品”自定义文章类型
*/
$product_labels = array(
'name' => '产品',
'singular_name' => '产品',
'menu_name' => '产品',
'name_admin_bar' => '产品',
'add_new' => '新增产品',
'add_new_item' => '新增产品',
'new_item' => '新产品',
'edit_item' => '编辑产品',
'view_item' => '查看产品',
'all_items' => '所有产品',
'search_items' => '搜索产品',
'parent_item_colon' => '父级产品:',
'not_found' => '未找到产品',
'not_found_in_trash' => '回收站中未找到产品',
'featured_image' => '产品主图',
'set_featured_image' => '设置产品主图',
'remove_featured_image' => '移除产品主图',
'use_featured_image' => '用作产品主图',
'archives' => '产品归档',
'insert_into_item' => '插入到产品',
'uploaded_to_this_item' => '上传到此产品',
'filter_items_list' => '筛选产品列表',
'items_list_navigation' => '产品列表导航',
'items_list' => '产品列表',
);
register_post_type(
'product',
array(
'labels' => $product_labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-cart',
'hierarchical' => false,
'capability_type' => 'post',
'map_meta_cap' => true,
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'revisions',
'custom-fields',
),
// 产品归档页:/product/
'has_archive' => 'product',
// 产品详情页:/product/产品别名/
'rewrite' => array(
'slug' => 'product',
'with_front' => false,
'feeds' => true,
'pages' => true,
),
'query_var' => true,
'can_export' => true,
'delete_with_user' => false,
// Gutenberg 与 REST API
'show_in_rest' => true,
'rest_base' => 'products',
// 关联产品分类
'taxonomies' => array( 'product_cat' ),
)
);
/**
* 2. 注册“产品分类”
*/
$product_cat_labels = array(
'name' => '产品分类',
'singular_name' => '产品分类',
'search_items' => '搜索产品分类',
'popular_items' => '热门产品分类',
'all_items' => '所有产品分类',
'parent_item' => '父级产品分类',
'parent_item_colon' => '父级产品分类:',
'edit_item' => '编辑产品分类',
'view_item' => '查看产品分类',
'update_item' => '更新产品分类',
'add_new_item' => '新增产品分类',
'new_item_name' => '新产品分类名称',
'separate_items_with_commas' => '用逗号分隔产品分类',
'add_or_remove_items' => '添加或移除产品分类',
'choose_from_most_used' => '从常用产品分类中选择',
'not_found' => '未找到产品分类',
'no_terms' => '暂无产品分类',
'filter_by_item' => '按产品分类筛选',
'items_list_navigation' => '产品分类列表导航',
'items_list' => '产品分类列表',
'menu_name' => '产品分类',
);
register_taxonomy(
'product_cat',
array( 'product' ),
array(
'labels' => $product_cat_labels,
'public' => true,
'publicly_queryable' => true,
'hierarchical' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => false,
'query_var' => true,
// 分类页:/products/分类别名/
// 子分类页:/products/父分类/子分类/
'rewrite' => array(
'slug' => 'products',
'with_front' => false,
'hierarchical' => true,
),
// Gutenberg 与 REST API
'show_in_rest' => true,
'rest_base' => 'product-categories',
)
);
// 确保分类法与产品类型绑定。
register_taxonomy_for_object_type( 'product_cat', 'product' );
}
add_action( 'init', 'mysite_register_products', 0 );
/**
* 插件启用:注册内容类型后刷新固定链接。
*/
function mysite_products_activate() {
mysite_register_products();
flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'mysite_products_activate' );
/**
* 插件停用:移除当前请求中的注册规则并刷新固定链接。
* 不删除产品、分类、图片或自定义字段数据。
*/
function mysite_products_deactivate() {
unregister_taxonomy( 'product_cat' );
unregister_post_type( 'product' );
flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, 'mysite_products_deactivate' );
4、隐藏后台登录入口
复制下面代码到主题文件中 functions.php
代码一
// //保护后台登录
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
//Location后改成你的站点,xx和xxx可自定义
if($_GET['ldl'] != 'yuan95')header('Location: https://www.yuan95.cn/');
}
后台登入地址应当是:https://www.yuan95.cn/wp-login.php?ldl=yuan95
代码二
// yuan95
add_action('login_enqueue_scripts', 'tb_wp_login_protection');
function tb_wp_login_protection(){
if( !isset($_GET['yuan95']) ){
header( 'Location: ' . home_url() );
exit;
}
}
yuan95 改成你需要的字符,之后登录的地址便是:网站域名/wp-login.php?yuan95,或者是:网站域名/wp-admin?yuan95
如果不按照以上地址访问,将直接跳转到网站首页。
5、WordPress 彻底关闭自动更新和更新检查功能
修改 wp-config.php 文件
// 禁用所有自动更新
define('AUTOMATIC_UPDATER_DISABLED', true);
// 禁用核心更新
define('WP_AUTO_UPDATE_CORE', false);
// 禁用后台更新检查
define('DISABLE_WP_CRON', true);
6、WordPress 完全禁用 RSS Feed 的最佳方法
复制以下代码到主题目录下的 functions.php 文件中即可
// 移除 feed 链接
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'feed_links', 2);
// 禁用 feed
function tb_disable_all_feeds() {
wp_die('RSS feeds 已被禁用。');
}
add_action('do_feed', 'tb_disable_all_feeds', 1);
add_action('do_feed_rdf', 'tb_disable_all_feeds', 1);
add_action('do_feed_rss', 'tb_disable_all_feeds', 1);
add_action('do_feed_rss2', 'tb_disable_all_feeds', 1);
add_action('do_feed_atom', 'tb_disable_all_feeds', 1);
add_action('do_feed_rss2_comments', 'tb_disable_all_feeds', 1);
add_action('do_feed_atom_comments', 'tb_disable_all_feeds', 1);
7、WordPress 禁止自动裁剪生成 图片的方法
1)第一步:后台-设置-媒体,缩略图的尺寸设置尺寸为0
2)第二步:主题文件 functions.php 中加入以下代码
// 移除多余的图片尺寸
add_filter('intermediate_image_sizes_advanced', 'filter_image_sizes');
function filter_image_sizes($sizes) {
if (isset($sizes['medium_large'])) {
unset($sizes['medium_large']);
}
if (isset($sizes['1536x1536'])) {
unset($sizes['1536x1536']);
}
if (isset($sizes['2048x2048'])) {
unset($sizes['2048x2048']);
}
return $sizes;
}
// 禁止裁剪 -scaled 图片
add_filter('big_image_size_threshold', '__return_false');
PS. 以上方法仅对设置后上传的图片有效。
8、WordPress上传图片或文件自动重命名的方法
复制以下代码到主题的 functions.php 文件最后即可。
方法一:
// WordPress上传图片或文件自动重命名的方法
add_filter('sanitize_file_name', 'tbwp_new_filename', 10);
function tbwp_new_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 15) . $ext;
}
方法二:
// 上传媒体时自动重命名,避免中文文件名
add_filter('wp_handle_upload_prefilter', 'custom_rename_uploaded_image');
function custom_rename_uploaded_image($file) {
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
// 只处理图片,可按需增加格式
$allowed_exts = array('jpg', 'jpeg', 'png', 'gif', 'webp', 'avif');
if (!in_array(strtolower($ext), $allowed_exts, true)) {
return $file;
}
// 生成英文/数字文件名:img-时间戳-随机数.jpg
$new_name = 'img-' . date('Ymd-His') . '-' . wp_generate_password(6, false, false);
$file['name'] = strtolower($new_name . '.' . $ext);
return $file;
}

乐予博客

