• 注册
  • 前端后端 前端后端 关注:1 内容:70

    wordpress解码 \u 或者 &#x 开头的字符串标题成实体编码

  • 查看作者
  • 打赏作者
  • 帅气冲天

    文字“文章标题”被编码后得到:

    ————

    \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 中插件或主题的函数中,执行一次,然后删除此代码就行!!

    注意: 在操作数据库时,请务必备份数据库,以防意外情况发生!!

    请登录之后再进行评论

    登录

    我关注的论坛

    暂没有数据

  • 发布内容
  • 做任务
  • 偏好设置
  • 直达底部
  • 帖子间隔 侧栏位置: