宝塔面板为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 。该插件已包含简体中文,自由使用吧!!!

WordPress文章页添加打印和生成PDF的功能

今天推荐的 Print Friendly and PDF Button 插件不仅可以添加保存文章为PDF的功能,还支持直接打印文章(需要你的电脑链接打印机),以及发送PDF到邮箱。在生成PDF前,你可以根据自己的需要,删除某些文章元素(比如标题、内容、图像等)。经过测试,该插件完美支持中文,生成的PDF不会乱码。

printfriendly-settings-wpdaxue_com

 

printfriendly-wpdaxue_com

在后台插件安装界面搜索 Print Friendly and PDF Button 即可在线安装,或者下载 Print Friendly and PDF Button (虽然官方说有简体中文支持,但是下载的插件包并没有自带简体中文语言包,找遍了它的网站也没发现哪里可以下载,所以倡萌只好自己汉化(部分字段无法汉化),如有需要,下载 简体中文语言包,解压后上传到该插件的 languages 目录即可)

 

WordPress 文章列表调用 new(最新)标志

给你新发布的文章(比如发布后24小时内)显示一个【new】图标,这样可以提醒访客。实现方法很简单,就是算个时间差,在规定时间内,插入特定文字或图标。

效果实例见截图(嘻嘻,PS了一张)

文字版显示方法:

在需要显示的地方(比如标题函数的后面)插入下面的代码

<?php 
$t1=$post->post_date;
$t2=date("Y-m-d H:i:s");
$diff=(strtotime($t2)-strtotime($t1))/3600;
if($diff<24){echo "<em>New</em>";} //这里就是显示的内容了
else{echo "";} //时间超过时候显示空白
?>

图片版显示方法:

<?php 
$t1=$post->post_date;
$t2=date("Y-m-d H:i:s");
$diff=(strtotime($t2)-strtotime($t1))/3600;
if($diff<24){echo "<img src='new.gif' />";} // new.gif 替换成你的图片
else{echo "";} //时间超过时候显示空白
?>

 

禁止 WordPress 文章页自动添加分段标签

WordPress 有个自动分段机制,只要你在可视化下敲击一次回车(文本模式敲击两次回车),就会在前台html自动添加分段标签<p>,其实这个功能也是很方便的,但是有些朋友就是不习惯,或者在某些情况下干扰了自己的文章内容格式。

这个自动分段机制,使用的是 wpautop() 函数,只会对文章内容和摘要生效,如果你希望禁用它,可以将下面的代码添加到主题的 functions.php 文件即可:

remove_filter( 'the_content', 'wpautop' ); //正文
remove_filter( 'the_excerpt', 'wpautop' ); //摘要

但是这样一来,就会使所有文章类型的文章都失去自动分段功能,要解决这个问题,我们可以在主题的 functions.php 添加下面的代码:

function needRemoveP() {
	remove_filter('the_content', 'wpautop'); 
}

然后在你想去掉功能的地方,比如想让文章去掉这个默认的功能,则在single.php里添加:

<?php add_action ('loop_start', 'needRemoveP'); ?>

其实我们还有更加方便的方法,不需要修改 single.php 文件,而是通过条件标签来判断,在主题 functions.php 使用下面的代码:

function needRemoveP() {
	if ( get_post_type() == 'post'){ // 如果文章类型为 post
		remove_filter('the_content', 'wpautop'); 
	}
}
add_action ('loop_start', 'needRemoveP');

以上代码的第 2 行就限定了文章类型为 post 的文章才会取消自动分段,你可以根据自己的需要修改文章类型。

WordPress忘记登录密码?密码重置方法

有时候你会忘记Wordpress登录密码,无法登录网站后台,本文介绍两种重置密码的方法,绝对有用。

 

第一种:通过wordpress后台登录界面找回密码

如果第一种已经试过不行,直接看第二种。

打开后台网址:yourdomain.com/wp-login.php (替换成你自己网站的域名),点击忘记密码,然后输入你安装Wordpress时填写的邮箱。

wordpress重设登陆密码

1、检查邮箱,打开链接

 

2、WordPress会自动生成一个新的密码,复制并保存好,最后点击重设密码,密码就重置好了,返回到登录页面就可以重新登录了。

 

第二种:用phpMyAdmin修改WordPress密码

第一种前提是你的Wordpress网站能发送邮件,如果你忘了安装时填写的邮件地址,或者收不到邮件,就得用phpMyAdmin修改WordPress密码了,直接在数据库中修改密码。

首先,登录到cPanel后台,找到数据库部分下的phpMyAdmin图标。

打开phpMyAdmin后,选择对应网站的数据库。找到 “wp_users” 数据表, 单击然后编辑.数据库

在”user_pass”一栏,下拉函数菜单选项,选择MD5,删除原来字段中的值,替换为你的新密码,最后单击执行。注意保存好你的新密码,因为点击执行后不再显示你的密码,而是一串加密的字符。WordPress 2.5版本以后采用了新的加密算法,会自动把MD5加密方式替换为新的加密算法进行加密。编辑数据表。

如果你忘Wordpress登录密码,希望这篇文章能帮你了解如何用phpMyAdmin修改WordPress密码。