当前位置:首页>网站建设>WordPress网站后台的文章列表增加删除文章及图片的链接按钮

WordPress网站后台的文章列表增加删除文章及图片的链接按钮

释放双眼,带上耳机,听听看~!

 WordPress后台删除文章通常是先把文章移至回收站,再前往回收站永久删除文章或者清空回收站,操作不方便。

可通过模板函数文件(functions.php),在文章列表中添加一个删除、删除(含图片)的链接按钮,方便快速删除文章或删除文章并删除图片。

使用方法

复制以下代码,粘贴到当前主题的模板函数文件中(functions.php)并更新文件。

代码:

// 在文章行动作中添加自定义操作按钮
add_filter('post_row_actions', 'custom_post_row_actions', 10, 2);
function custom_post_row_actions($actions, $post) {
    // 添加仅删除文章的链接
    $actions['delete_without_images'] = '<a href="' . wp_nonce_url(admin_url('admin.php?action=delete_post_without_images&post=' . $post->ID), 'delete-post_without_images_' . $post->ID) . '" onclick="return confirm(\'确定要删除这篇文章吗?\')" style="color: blue;">删除</a>';//方便区分删除链接按钮,增加了蓝色醒目提示
    // 添加删除文章及图片的链接
    $actions['delete_with_images'] = '<a href="' . wp_nonce_url(admin_url('admin.php?action=delete_post_with_images&post=' . $post->ID), 'delete-post_with_images_' . $post->ID) . '" onclick="return confirm(\'确定要删除这篇文章及其图片吗?\')" style="color: red;">删除(含图片)</a>';//方便区分删除链接按钮,增加了红色醒目提示
    return $actions;
}
// 添加文章删除动作
add_action('admin_action_delete_post_with_images', 'delete_post_with_images');
add_action('admin_action_delete_post_without_images', 'delete_post_without_images');
// 删除文章及其图片的函数
function delete_post_with_images() {
    // 检查nonce
    check_admin_referer('delete-post_with_images_' . $_GET['post']);
    // 获取文章ID
    $post_id = intval($_GET['post']);
    // 删除文章及其图片
    delete_post_images($post_id);
    // 重定向到文章列表
    wp_redirect(admin_url('edit.php?post_type=post&deleted=true'));
    exit;
}
// 仅删除文章的函数
function delete_post_without_images() {
    // 检查nonce
    check_admin_referer('delete-post_without_images_' . $_GET['post']);
    // 获取文章ID
    $post_id = intval($_GET['post']);
    // 仅删除文章
    wp_delete_post($post_id, true);
    // 重定向到文章列表
    wp_redirect(admin_url('edit.php?post_type=post&deleted=true'));
    exit;
}
// 删除文章及其图片的函数
function delete_post_images($post_id) {
    // 获取文章内容
    $post_content = get_post_field('post_content', $post_id);
    // 使用正则表达式匹配所有图片
    preg_match_all('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>/i', $post_content, $matches);
    // 如果找到图片
    if (isset($matches[1]) && count($matches[1]) > 0) {
        foreach ($matches[1] as $image_url) {
            // 从完整的URL中提取文件名
            $file_path = parse_url($image_url, PHP_URL_PATH);
            $file_name = basename($file_path);
            // 构造完整的文件路径
            $upload_dir = wp_upload_dir();
            $file = $upload_dir['basedir'] . '/' . $file_name;
            // 如果文件存在,则删除
            if (file_exists($file)) {
                @unlink($file); // 使用@符号抑制错误信息
            }
            // 同时删除数据库中的图片记录
            $attachment_id = attachment_url_to_postid($image_url);
            if ($attachment_id) {
                wp_delete_attachment($attachment_id, true); // 尝试删除附件,true表示从数据库中删除
            }
        }
    }
    // 获取特色图片ID
    $thumbnail_id = get_post_meta($post_id, '_thumbnail_id', true);
    if ($thumbnail_id) {
        // 删除特色图片
        wp_delete_attachment($thumbnail_id, true);
    }
    // 删除文章
    wp_delete_post($post_id, true);
}
欢迎访问秀主题博客,分享简单实用WP教程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
网站建设

WooCommerce 根据用户角色隐藏指定分类的产品

2024-12-23 13:55:30

网站建设

代码轻松删除WordPress后台不用的功能和菜单

2024-12-28 12:32:54

温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:971318156@qq.com,我们将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索