文字“文章标题”被编码后得到:
————
\u6587\u7ae0\u6807\u9898
文章标题
————
如果你的文章标题出现了上面任意一种类似的格式编码,即 \u 或者 &#x 开头的字符串,就适用于此方法来解码成中文字符串。
上面两种是 HTML 实体编码,用来表示特定的字符或符号,这些实体编码可以通过 HTML 或者 PHP 中的特定函数来解码成对应的字符或字符串。
PHP可以使用 html_entity_decode 函数来解码 HTML 实体编码。
以下的代码作用是将循环遍历wordpress所有文章,将标题来解码成 HTML 实体编码,然后通过 sanitize_title 函数生成别名
global $wpdb; // 执行 SQL 查询以获取所有文章的 ID、标题和别名 $query = "SELECT ID, post_title, post_name FROM {$wpdb->posts} WHERE post_type = 'post'"; // 只查询文章类型的内容 $posts = $wpdb->get_results($query); // 假设 $posts 是你之前查询得到的文章列表数组 foreach ($posts as $post) { // 解码文章标题的实体编码 $decoded_title = html_entity_decode($post->post_title, ENT_HTML5, 'UTF-8'); // 更新文章标题和别名 $wpdb->update( $wpdb->posts, array( 'post_title' => $decoded_title, 'post_name' => sanitize_title($decoded_title), // 使用 sanitize_title 函数生成别名 ), array('ID' => $post->ID), array('%s', '%s'), array('%d') ); }
将上面代码运行一次就行
将代码放入WordPress 中插件或主题的函数中,执行一次,然后删除此代码就行!!
注意: 在操作数据库时,请务必备份数据库,以防意外情况发生!!