分类: 最新文章

  • 实现WordPress上传图片自动重命名的方法

    实现WordPress上传图片自动重命名的方法

    在我们使用 WordPress 发布文章时,经常都需要添加图片、多媒体什么的。

    然而,大家都知道 WordPress 是舶来物,对于中文用户来说,我们都会把图片命名为中文的,由于 WordPress 机制的原因,并不能正常的显示图片或者各种的问题。

    那么,如何让 WordPress 图片自动重命名然后正常显示使用呢?

    具体有根据上传时间命名和MD5转码文件名为32位字符串两种格式的文件命名方法,只能二选一。

    一、根据上传的时间命名

    function custom_upload_filter( $file ){
        $info = pathinfo($file['name']);
        $ext = $info['extension'];
        $filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数
        $file['name'] = $filedate.'.'.$ext;
        return $file;
    }
    add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
    

    二、文件名md5转码为32位字符串

    function custom_upload_filter( $file ){
        $info = pathinfo($file['name']);
        $ext = '.' . $info['extension'];
        $md5 = md5($file['name']);
        $file['name'] = $md5.$ext;
        return $file;
    }
    add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
    

    将代码添加到所使用主题的 functions.php 文件中即可。以上两种方法只能二选一。

  • WordPress删除文章时自动删除图片附件

    WordPress删除文章时自动删除图片附件

    WordPress删除文章时,文章内所上传到媒体库的图片等附件不会自动删除,占用了网站空间,因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除,准确而且效率高。

    将代码放到模板目录functions.php文件中即可使用,其原理是在删除文章时先执行函数内容,删除特色图片以及图片附件。

    function delete_post_and_attachments($post_ID) {
        global $wpdb;
        //删除特色图片
        $thumbnails = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID");
        foreach ($thumbnails as $thumbnail) {
            wp_delete_attachment($thumbnail->meta_value, true);
        }
        //删除图片附件
        $attachments = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'");
        foreach ($attachments as $attachment) {
            wp_delete_attachment($attachment->ID, true);
        }
        $wpdb->query("DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID");
    }
    add_action('before_delete_post', 'delete_post_and_attachments');
  • Ubuntu开启BBR加速

    Ubuntu开启BBR加速

    背景

    新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑慢,并且尽量不要有排队的情况,让网络服务更佳稳定和高效。

    Linux Kernel 内核升级到 4.9 及以上版本可以实现 BBR 加速,由于Ubuntu 20.04 默认的内核就是 5.4 版本的内核,并已经默认编译了 TCP BBR 模块,所以可以直接通过参数开启。

    解决方案

    修改系统变量:

    echo net.core.default_qdisc=fq >> /etc/sysctl.conf

    echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf

    保存生效

    sysctl -p

    执行

    sysctl net.ipv4.tcp_available_congestion_control

    检测是否如下所示:

    net.ipv4.tcp_available_congestion_control = bbr cubic reno

    执行以下命令检测 BBR 是否开启:

    lsmod | grep bbr

    出现类似以下的情况就是成功开启BBR

    tcp_bbr 24576 3

    ————————————————

    版权声明:本文为CSDN博主「Moshow郑锴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/moshowgame/article/details/121550417