人间
总有一两风

WordPress 代码及指令

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;
}

赞(0) 打赏
未经允许不得转载:乐予博客 » WordPress 代码及指令

需要独立站建站、服务器配置环境服务

联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫