WordPress纯代码实现直接将文章别名设置为文章ID
已发布文章修改
建议直接替换SQL数据库里的 post_name 字段的方法,简单快捷。
进入 mysql 命令【 选择你所创建的数据库的命令:mysql> USE MYSQLDATA; (注:MYSQLDATA是数据库的名称。按回车键出现 Database changed 时说明操作成功!) 】或者 phpmyadmin 的 SQL (登录后打开数据库管理系统,找到网站对应的wordpress数据库,点击后,在上方有个SQL按钮) ,执行如下SQL命令修改即可:
update wp_posts set post_name=ID where post_status='publish' and post_type='post';
PS:wp_posts 是 WordPress 的文章数据表,wp_ 是默认的前缀,如果自定义更改过,请根据实际修改即可。
新文章自动使用文章ID作为文章的别名
将下边的代码添加到到当前主题目录下 functions.php 文件,在php结束标记 ?> 前 ,新建的文章都会自动使用生成的文章ID作为文章别名。
/**
* WordPress新文章自动使用ID作为别名
* 作用:即使你设置固定连接结构为 %postname% ,仍旧自动生成 ID 结构的链接
*/
add_action('save_post', 'using_id_as_slug', 10, 2);
function using_id_as_slug($post_id, $post)
{
global $post_type;
if ($post_type == 'post') { //只对文章生效
// 如果是文章的版本,不生效
if (wp_is_post_revision($post_id))
return false;
// 取消挂载该函数,防止无限循环
remove_action('save_post', 'using_id_as_slug');
// 使用文章ID作为文章的别名
wp_update_post(array('ID' => $post_id, 'post_name' => $post_id));
// 重新挂载该函数
add_action('save_post', 'using_id_as_slug');
}
}
本文代码经过测试有效。介意的还请勿用。