WordPress 如何更改JPEG图片的压缩质量

默认情况下,WordPress会对上传的图片进行压缩,以免获得更好的性能和用户体验。长久以来,默认的压缩质量为 90%,直到 WordPress 4.5以后,就降低为 82% 了,为的是优化图片在手机端的加载速度。但是并不是所有的用户都希望如此。最近就有客户反馈说,为什么我上传的图片都被压缩了,模糊了。今天倡萌就分享下如何更改WordPress对JPEG图片的压缩质量。

科普一下:

JPEG 在这里所指的是一种压缩方式,用这种压缩格式的文件一般就称为JPEG;此类文件的一般扩展名有:.jpeg、.jfif、.jpg或.jpe,其中在主流平台最常见的是.jpg。

WordPress提供了 jpeg_quality 钩子,以便让用户可以自定义参数。我们就是借助这个钩子来实现修改图片压缩质量。具体的方法就是将下面的代码添加到当前主题的 functions.php 文件即可:

/**
 * 自定义JPEG图片压缩质量
 * https://www.wpdaxue.com/wp_image_editor-jpeg_quality.html
 */
function wpdx_custom_jpeg_quality() {
    //根据实际需求,修改下面的数字即可
    return 90;
}
add_filter( 'jpeg_quality', 'wpdx_custom_jpeg_quality');

只需要根据实际需求,修改上面代码的第7行的数字即可,比如,不希望图片被压缩,就修改为 100

可能有朋友要问了,那如何修改 png 图片的压缩质量呢?还真的难倒倡萌了,貌似WordPress 本身并没有提供类似的钩子专用于png图片,倡萌也没有探究过。如果你知道,不妨和我们一起分享!

WordPress程序使用阿里云邮件推送实现SMTP发送邮件

现在很多虚拟主机都是默认不支持 mail() 函数发送邮件的,不过一般都提供 smtp 发件支持。要找一个好用的 smtp 发送邮件方可不容易,不是发件数量限制太小,就是经常被判为垃圾邮件。所以倡萌此前一直在服务器搭建邮件发送功能,并想办法优化提高邮件可行度,避免被判为垃圾邮件,但效果还是不太理想。前些天,想起了阿里云的邮件推送服务,并进行了测试,发现真的不错哦,于是就有了这篇文章。

阿里云的邮件推送服务,每天免费200封,对于一般中小站点来说,基本够用了。即使不够用,花钱购买邮件包也不贵。

操作步骤:

1、要了解和开通阿里云邮件推送服务,请查看:https://www.aliyun.com/product/directmail

2、开通以后,在控制台进入“发信域名”新建域名:

2016-09-08_214329

3、添加域名后,点击配置,可以查看到域名配置信息

2016-09-08_215111

4、按照域名配置信息的提示,到你的域名解析后台添加3条解析记录:

2016-09-08_215359

5、添加完解析记录,回到阿里云后台,点击“验证”,返回“验证通过”说明解析生效:

2016-09-08_215427

6、切换到“发信地址”界面,新建发信地址:

2016-09-08_215446

7、选择刚才添加的发信域名,然后输入你要使用的账号,输入回信地址,选择发信类型:

2016-09-08_215651

注:发信类型有:

触发邮件:注册确认、订单确认、密码重置、交易通知等
批量邮件:自有用户的产品促销、期刊订阅等

但是有些用户反馈,触发邮件方式不太稳定,你可以根据自己的实际选择吧,这里我选择的是批量邮件

8、添加完返回到界面,点击“验证回信地址”,然后会发送邮件到你的回信地址,到你的邮件箱点击邮件的链接验证通过即可,注意哦,验证邮件可能在垃圾箱里。然后设置SMTP 密码。

 

WordPress免费图片压缩优化插件 reSmush.it Image Optimizer

reSmush.it 是国外专门提供免费图片压缩优化服务api接口,它提供了基于几种高级算法的图片压缩功能,支持jpg、png和gif文件,单张图片最大支持5MB。对图片数量没有任何限制。

reSmush.it Image Optimizer 是一个基于reSmush.it API的免费的图片优化插件。该插件提供了一键批量优化已有图片的功能,还支持设置上传时优化图片,或者定时优化图片,可以选择保留图片的EXIF信息,以及删除原图等。

安装启用插件以后,你可以在 媒体 – reSmush.it 进入到插件的设置界面,如下图所示:


在媒体列表界面,你还可以看到 reSmush.it 的相关信息,比如图片压缩比例等:


reSmush.it Image Optimizer 插件下载地址:https://wordpress.org/plugins/resmushit-image-optimizer/

注:reSmush.it 托管于国外服务器,所以比较适合外贸网站或托管于国外服务器的WordPress网站使用,倡萌在某个网站上使用了一段时间,发现效果真的不错,所以才推荐给大家。至于国内服务器上的网站,倡萌没有去测试,不过应该也是可以正常使用,如果有朋友测试了,欢迎反馈一下。

宝塔面板为WordPress网站添加SSL证书设置https访问

宝塔面板目前应该是国内最受欢迎的免费服务器环境面板,而且已经和阿里云、西部数码等大厂进行了合作,用户群增速飞快。倡萌也为不少客户的服务器安装了宝塔面板,得到了客户很好的评价。

如果你还不了解宝塔是什么,可以访问官方看下:https://www.wpdaxue.com/go/baota

言归正传,今天倡萌来分享下,如何在宝塔面板为你的网站安装SSL证书实现https访问。

申请SSL证书

1、登录你的宝塔后台,在网站菜单下,找到对应站点的设置,然后切换到SSL选项卡,如下图所示。

注:你可以在阿里云/腾讯云等网站申请到免费的SSL证书,然后通过下图的“其他证书”选项卡下进行设置。

这里推荐大家直接使用 Let’s Encrypt 的免费SSL证书服务,勾选对应的域名,然后点击申请按钮:


注:我们在申请证书的时候,一般都只能选择同一个根域名下的域名,比如 aaa.com 和 www.aaa.com,如果你的这个网站绑定的域名包含多个不同根域名(或他们的子域名)比如 aaa.com、bbb.com、www.aaa.com、www.bbb.com 等,那你只能勾选同一个根域名的相关域名,因为一般的证书是不支持不同根域名一起申请的。其他没有证书的域名,你应该做301跳转到你的WP网站后台填写的域名。

2、稍等一分钟左右,如果域名解析和验证都没有问题,就会自动获取到证书,一般倡萌推荐大家启用“强制HTTPS”,在下图界面的右上角:


修改网址

3、访问phpMyAdmin去修改网站的域名信息,我们可以在宝塔面板-数据库,点击phpMyAdmin按钮访问,然后用户名输入 root ,密码可以点击下面的 root密码 按钮查看:


4、进入到网站对应的那个数据库,在 wp_options 那个表,找到 siteurl 和 home 两个字段,将他们的值修改为https网址:

注:数据库前缀可能不是 wp_,要根据你的实际找到 前缀_options 这个表。


将http网址批量替换为https

到这里,访问你们的网站,你可能会遇到以下问题:

  1. 网站样式丢失
  2. 网站图片无法显示
  3. 网站还是被浏览器提示不安全
  4. ……

以上问题的根源在于:https 下是不允许加载来自 http 链接的资源文件的。所以我们需要进行下一步操作:替换数据库中所有http网址为https。

在这里,我们使用 Better Search Replace 插件来进行批量替换(查看插件介绍),安装并启用这个插件以后,我们可以在 工具 菜单下进入插件界面,按照下图步骤提示进行操作即可:


通过上面的操作,目前网站的https应该是正常的了, 不过,有些人使用的主题或插件可能不一样,会有极个别的设置选项没有被批量替换为https,那就需要自己去排查修复一下啦!

WordPress失效链接检查插件Broken Link Checker

当你的WordPress网站运营了一段时间,比如几年,网站很可能就会存在不少失效链接,比如文章中引用的别人的网址,评论人留下的链接等等。如果网站存在过多失效链接,对于网站SEO和用户体验都不是一件好事情。所以,我们应该尽可能去检查、修复或删除这些失效链接。

但是,要从这么多文章数据中去手动检查失效链接,这个肯定是不可行的。好在WordPress有相关的插件可以实现自动检查:Broken Link Checker。

倡萌之前应该在一些文章中提到过这个 Broken Link Checker 插件,直到前些天需要用到这个插件,然后不记得名称了,在WordPress大学搜索,才发现居然没有正式介绍过这个好用的插件。

Broken Link Checker 可以自动去检查你网站中几乎所有地方的链接是否失效,包括站内或站外链接,还支持手动修改或删除失效的链接。总之,就是非常方便,如下图所示:

Broken Link Checker 的设置选项非常灵活,你可以设置检查时间间隔,还可以对已失效的链接添加样式,比如删除线:

Broken Link Checker 允许你设置需要检查的内容范围,设置支持文章自定义字段:


Broken Link Checker 还可以设置需要检查的链接类型,还可以排除某些链接,比如你可以排查检查你的站内域名下的链接:

Broken Link Checker 还可以设置检查链接的方式,一般我们选择HTTP即可:

Broken Link Checker 还有更多灵活的设置,比如超过多少秒才设置为失效,什么时候运行检查,甚至可以限制对服务器的资源占用:

什么时候才使用 Broken Link Checker?如果你的内容是采集来的,或者你经常在网站中引用了一些站外链接,或者网站开启了评论功能,那么你应该每个一段时间运行这个插件检查一下,检查完后我们可以禁用掉。

Broken Link Checker 插件自带中文,你可以直接在后台 插件 – 安装插件 界面进行搜索安装,或者到官方下载安装:https://wordpress.org/plugins/broken-link-checker/

WordPress程序设置404.php模板

当你访问的WordPress站点的网址不存在时,WordPress会调用主题的404.php模板来返回404错误信息,比如:

最近,我需要一种编程方式来触发我的一个免费WordPress插件中的404错误。幸运的是,WordPress使它非常容易实现。本快速教程介绍了两种不同的实现方法。

第一种方法

使用主题的404模板(即404.php)提供404“未找到”响应的第一种方法,我们可以通过wp钩子像下面这样插入我们的函数:

function shapeSpace_trigger_404() {
	
	global $wp_query;
	$wp_query->set_404();
	status_header(404);
	
}
add_action('wp', 'shapeSpace_trigger_404');

然后在函数内部,声明全局变量,并使用set_404()方法在WP查询对象上设置404 。最后,我们使用WordPress status_header()函数设置404标头响应。该代码的最终结果是使用主题的模板文件404.php提供404 HTTP响应。

第二种方法

第二种方法使用pre_get_posts操作钩子设置404错误并提供主题404.php模板。代码像这样:

function shapeSpace_trigger_404($wp_query) {
	
	if ($wp_query->is_main_query()) {
		
		$wp_query->set_404();
		status_header(404);
		
	}
	
}
add_action('pre_get_posts', 'shapeSpace_trigger_404');

在此方法中,我们使用pre_get_posts修改主WP查询。

第一种方法和第二种方法之间的主要区别是使用的钩子和$wp_query变量的获取。在第一种方法中,我们将其声明为全局变量。在第二种方法中,它通过pre_get_posts钩子传递给函数。

WordPress报错Fatal error: Uncaught Error: Call to undefined function mysql_connect

今天有个小伙伴反馈说他网站后台报错 Fatal error: Uncaught Error: Call to undefined function mysql_connect()。


报错原因

mysql_connect() 函数从php 5.5 就开始被弃用了,然后从 php 7 以后就被完全删除了。

所以,如果你在使用 PHP 7 +,而你使用的是比较老的WordPress版本,或者你的主题、插件还在使用 mysql_connect() 函数,就会出现上面的错误。

解决办法

方法1:继续使用 php 5 系列的版本

方法2:如果你一定要使用 PHP 7 +的版本,请按照下面的步骤排查:

1、升级你的WordPress至少到 5.2,如果可以的话,建议升级到最新版的WordPress。如果还提示报错,说明不是WordPress的问题。

2、切换为WordPress自带的官方主题,如果不再报错,说明你之前的主题不兼容PHP 7,那就只能升级你的主题或更换其他主题。如果还是报错,说明不是主题问题。

3、禁用掉所有插件,如果不再报错,说明是某个插件有问题,一个一个启用插件,检查出,到底是哪个插件不兼容php 7。然后升级这个插件,如果没有可用的升级,就删除插件,寻找其他类似功能的插件替代。

WordPress程序文章底部添加自定义内容

有时候,你可能需要在所有文章底部添加自定义内容,可以将下面的代码添加到主题的 functions.php 文件中:

//在所有文章底部添加自定义内容
function add_after_post_content($content) {
	if(!is_feed() && !is_home() && is_singular() && is_main_query()) {
		$content .= '你需要添加的自定义内容';
	}
	return $content;
}
add_filter('the_content', 'add_after_post_content');

第 3 行代码使用了条件标签,禁止Feed和首页输出自定义内容。

WordPress插件 每日/每月访客统计 Count per Day

Count per Day 是一个非常强大的访客数量统计插件,可以统计每天、昨天、每周、每月等等的访客数量(根据IP进行统计),统计在线访客数、浏览器、搜索词等等,自带多种调用简码、模板标签以及小工具,方便你自行调用和集成。

统计界面(没有在线使用,所以没有数据)

count-per-day-wpdaxue_com

设置界面

count-per-day-settings-wpdaxue_com

在后台插件安装界面搜索 Count per Day 即可在线安装,或者下载 Count per Day 。该插件已包含简体中文,自由使用吧!!!