WordPress之家 WordPress建站一站式服务平台

    wordpress移除wp-json链接和wp-embed.min.js文件

    2020年2月9日 by:

    wordpress移除wp-json链接和wp-embed.min.js文件

    最近更新了wordpress最新版本4.4,更新啥功能我也不知道,知道了我也用不上,但是发现代码里面多出了好几项功能链接,我也用不上。所以我们就把他移除掉,主要是多了REST API(通过REST API可以很轻松的获取网站的数据)、wp-json链接、embeds功能(embeds功能可以允许更方便的引用第三方资源)、wp-embed.min.js文件。

    用不上我们还加载它做什么,还影响网站的读取速度,那么我们就来说说如何禁止掉。

    先说说禁用REST API、移除wp-json链接的方法,将以下代码添加到主题functions.php文件中即可禁用REST API并去除head里面输出的链接信息:

    禁用embeds其实还是比较复杂(代码比较多),官方甚至为此开发了一个插件,大家可以使用插件来禁用:Disable Embeds,如果不想使用插件,那就将插件里面的代码复制到主题的functions.php文件即可。

    每一次更新wordpress版本都会多出一些东西,例如之前的emoji,并且都在页面上输入内容,或多或少都会影响速度,我们博客基本就是更新下文章而已,搞的太负责了未免多此一举,用不上就干掉REST API和embeds,为了用户体验,让网站更快的展示我们码的字就OK了。

    wordpress最新文章列表中排除置顶文章

    wordpress最新文章列表中排除置顶文章

    前几天在做一个wordpress主题想把最新文章列表和置顶文章列表分开显示,可在调用最新文章列表时发现,如果wordpress博客有置顶文章,那 么最新文章列表也会把博客的置顶文章显示在最前面,但是可以通过设置置顶文章的参数caller_get_posts排除列表中的最新文章。

     

    禁止wordpress4.4+版本自动生成一个768像素缩略图

    2f2a7b9b3379285e8947

    4.4版本以后,wordpress增加了响应式图片的功能,目的是让图片能适应手机、平板等不同屏幕,你所上传的图片均会自动生成一个768像素的缩略图,但是我不想要这个功能,把缩略图大小全调成0,禁止wordpress自动生成缩略图,上传图片还是会生成一个768像素的缩略图。

    这个问题找了好久都没有找到解决办法,研究了一天,终于解决了。

    在文件wp-admin\includes\schema.php里有如下代码,可以看出是4.4新增的功能。

    这是安装wordpress的默认选项,但是在后台又没有地方改,代码也没有地方改,因为已经存入数据库了,所以得进数据库改。输入命令将medium_large_size_w的值改成0就行了。

    SQL命令如下:

    禁止wordpress生成768像素的缩略图可以有效的节省网站空间,特别是那些图片很多的网站更需要禁止掉这个缩略图。

    解决:wordpress WPImageEditorImagick 指令注入漏洞

    解决:wordpress WPImageEditorImagick 指令注入漏洞

    漏洞名称:wordpress WP_Image_Editor_Imagick 指令注入漏洞

    在/wp-includes/media.php的_wp_image_editor_choose函数内部找到(大概在2898行):

    修改为

     

    wordpress定时发布文章失败怎么办?

    d9d09204489e9ea7f581

    wordpress程序,有一个很大的好处就在于这程序可以定时发布,在我们有事不能更新网站的时候,定时发布可使网站自动更新,有利于SEO优化和用户体验。

    如何定时发布?

    在发布文章的界面右边的【发布】选项,点击一下[立即发布]右边的“编辑”,就会出现下图所示的界面,可以选择发布日期和时间,设定后,确定即可:

    定时发布失败怎么办?

    有时候因为服务器的原因,或是系统本身的代码的冲突以及插件的冲突,会使我们的定时发布失败,也就是到了预定的时间,文章却发布不出来,下面教大家如何解决:

    方法一:修改 /wp-includes/cron.php 系统文件

    打开wp-includes目录下面的cron.php文件,找到“timeout”代码:

    将代码后面的数值0.01修改为比0.01大就可以了,也可以修改为10.00。

    但是使用这个方法后每次更新wordpress版本之后都要重新修改这个文件,不推荐使用。

    方法二:使用WP Missed Schedule插件

    下载 WP Missed Schedule ,安装启用即可,简单粗暴有效,推荐!

    移除 WordPress 中的「找回密码」/「更改密码」功能

    移除 WordPress 中的「找回密码」/「更改密码」功能

    在某些场景中我们需要将wordpress中的「找回密码」/「更改密码」功能去掉——即登录页面中找不到链接,实际访问中也无法使用。来看下具体代码:

    以下代码将仅允许管理员用户使用「找回密码」/「更改密码」功能

     

    WordPress链接自动添加Noopener Noreferrer的解决办法

    WordPress链接自动添加Noopener Noreferrer的解决办法

    不知道大家有没有在文章内放外链的需要,考虑到SEO的问题一般都会给网站做个文章外链自动nofollow的功能,nofollow 是一个HTML标签的属性值。这个标签的意义是告诉搜索引擎不要追踪此网页上的链接或不要追踪此特定链接。

    最近在编辑网站的时候发现文章内的外链不能自动加nofollow属性,经过一番研究是wordpress新版本的问题。

    WordPress在最近的版本更新中为所有需要新窗口打开的链接都自动添加了新的Noopener Noreferrer属性(导致nofollow属性失效)。

    Noopener Noreferrer 属性并不是新发布的标准,但v4.7.4版开始WordPress的编辑器默认都会添加该属性。

    该属性主要是用来防范新窗口打开链接时可能存在的钓鱼攻击, 因此作为安全性内容WordPress就给添加了。

    但添加后新标签页面将无法通过常规方法追踪到来源页面,这在属性的字段中已经可以看出来:No Refer 。

    在升级到WordPress v4.7.4版之后原先发布的内容附带的新窗口链接并不会自动添加Noopener Noreferrer。

    但是如果是新发布的文章或者是你修改了之前发布的内容,那么新窗口链接全部会加 Noopener Noreferrer。

    解决办法:

    请将此段代码添加到你wordpress主题的function.php底部,然后保存并上传即可

    注意事项:

    添加之后新发布的内容附带的链接如果设置为新窗口打开那么将不会再自动添加Noopener Noreferrer属性。

    如果之前发布的文章已经附带了该属性即使添加之后也不会自动去除,你需要手动编辑然后依次删除新属性。

    即手动编辑文章并将编辑器切换到文本模式然后将rel ="noopener noreferrer"删除掉然后保存更新就行了。

    wordpress后台主题只显示一个,别的不显示怎么办

    wordpress后台主题只显示一个,别的不显示怎么办

    找到 php.ini,一般在服务器的 /usr/local/php/etc 目录下(有权限的FTP账户可以操作,且一般是这个位置);
    打开 php.ini,查找其中的“disable_funcions”字样,找到并删除紧随其后的“scandir”,最后保存该文件;

    禁用WordPress响应式图片属性srcset和sizes

    c8108c28ce07cb9fe6a8

    最近分享了一个免费wordpress主题,结果有用户发现博客上的图片显示不出来了,经过排查是由于WordPress 4.4 开始新增了响应式图片属性 srcset和sizes。而这个主题使用了Pjax预加载的技术,所以造成了图片不显示。

    对于这个问题,最好的方法就是找到源码,将图片的路径修改成正确的。

    我这里有一个快速的方法禁用响应式图片属性srcset和sizes,如果遇到类似的问题也可以这么处理。

    代码如下

    在主题的 functions.php 文件末尾追加下面的函数

     

    解决导入MySQL数据库提示”Unknown character set: utf8mb4″

    a3e33e5004991faf3e48

    今天在帮一个用户导入WordPress主题的演示数据,根据正常的操作备份最新的网站文件和导出数据库,然后在新服务器中上传网站文件,在数据库中导入数据库文件就可以了,但是看到有错误提示,用户使用的是阿里云的虚拟主机。

    错误提示

    看来是因为数据库版本的问题导致的,他现在使用的是MYSQL5.17版本,而我演示数据是从5.5.6导出的,Mysql从5.5开始采用的是utf8mb4,而他的数据库版本还是老的utf8。

    解决方法

    用sublime(或是其他代码编辑软件)打开数据库文件,然后将所有utf8mb4修改成utf8.

    最后重新导入数据,问题解决。

    Scroll Up
    加载中