标签: WordPress

  • WordPress REST API 的基本使用

    WordPress 默认开放 REST API

    如果你基于WordPress建立的网站已经就绪,且发布了文章,

    就可以通过下面的URL直接访问JSON格式的数据:

    文章列表  https://www.yourdomain.com/wp-json/wp/v2/posts

    页面列表  https://www.yourdomain.com/wp-json/wp/v2/pages

    用户列表  https://www.yourdomain.com/wp-json/wp/v2/users

    将域名 yourdomain.com 替换为自己的域名,

    如果页面返回404错误,需要设置WEB代理服务器(Nginx)的重定向规则。

    官方REST API手册,访问 https://developer.wordpress.org/rest-api/reference/

    由此可见,如果网站想提供数据接口服务,没有开发成本

    禁用 REST API ,可以安装插件 Disable REST API

    Chrome 插件 JSON Viewer 可以格式化 json ,以便于阅读。

  • WordPress在线客服插件tawk介绍

    基于WordPress开发的电商类型的网站,通常有客户希望询盘,经典的联络表单方式,沟通答复间隔时间比较长,很容易造成客户流失,而通过tawk提供的服务,我们可以实时响应访客的询问,从而更快捷的达成交易。

    tawk支持多种常见应用平台,像Windows/Mac OS X/Android/iPhone都可以安装使用,这里仅介绍团队针对WordPress开发的插件。在使用之前,需要去官方网站https://www.tawk.to/注册账号,注册之后,填写自己网站的名称URL,可以得到Site IDAPI Key,然后在WordPress后台的设置/Tawk.to/Account Setting里面登陆并选择对应的property即可。

    tawk 的后台功能有仪表盘【dashboard】/监控【Monitoring】/会话【Message】/设置【Setting】等模块,可以满足日常的基础需求。

    为了实时响应用户咨询消息,推荐在自己常用的设备上安装对应版本的tawk。

    官方使用指导文档请访问下面的链接:

    https://www.tawk.to/knowledgebase/plugins-and-modules/add-a-tawk-to-widget-to-wordpress/

  • 使用插件advanced custom fields来扩展WordPress文章字段

    WordPress文章的默认属性,例如分类、标签、题图,摘要,状态等,可以满足基本的使用需求,

    但是对于特殊类型的业务,需要扩展文章属性的时候,就需要借助插件来拓展,虽然有自带的自定义栏目,但是功能比较基础。

    插件advanced custom fields正是为满足这种需求而生,在WordPress插件页面显示此插件的安装量超过一百万,可见扩展属性的需求是比较普遍的。

    借助此款插件,可以正对文章(post)、页面(page)、用户(user)、媒体(media)等模块添加扩充字段。

    需求示例:

    1)文章都是关于乐队的资料,你想添加主唱、吉他、贝斯这几个字段作为文章的独立属性;

    2)用户资料想要记录用户的年龄和电话号码;

     

  • 如何给WordPress网站添加Javascript代码

    直接修改主题文件,主题一升级,代码就没有了。

    其实可以通过插件来引入Javascript代码。

    WordPress提供了函数 wp_enqueue_script 和钩子 wp_enqueue_scripts 。

    以方便开发者管理Javascript代码。

    添加的方法步骤:

    在插件目录下新建一个目录,进入目录后新建一个插件文件index.php,插入如下示例代码:

    <?php
    /*
    Plugin Name: custom javascript
    Description: Add custom javascript
    */
    function add_custom_scripts() {
    wp_enqueue_script( 'jquery-ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js', array(), '1.12.1', false);
    }
    add_action( 'wp_enqueue_scripts', 'add_custom_scripts' );

    wp_enqueue_script 函数五个参数说明

    1. string $handle #对当前引入的javascript文件的代号

    2. string $src = ” #javascript代码资源url

    3. array $deps = array() #依赖得代码,就是参数1中handle的值

    4. string|bool|null $ver = false #版本号,如果未指定,与WordPress系统版本号一致

    5. bool $in_footer = false #是否在文档底部,如果是false,则默认在文档头部就载入

    最后保存文件,去插件中心激活插件,在浏览器页面查看页面源代码,就可以看到引入的 javascript 文件了。

    使用 wp_enqueue_script 函数有以下优点:

    a. 可以设定与其他依赖代码的载入次序

    b. 可以指定版本号利于让客户端的缓存失效

    c. 可以指定嵌入代码在文档的位置

    另外还有一个函数 wp_script_add_data

    这个函数用来给你添加的javascript文件设定metadata

    例如,添加下面的谷歌广告的代码:

    <script data-ad-client="pub-123456789" async src="https://pagead2.googlesyndication
    .com/pagead/js/adsbygoogle.js"></script>

    应该按如下的方式来添加

    <?php
    
    wp_enqueue_script( 'google_adsense', 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js', array(), false, false);
    
    wp_script_add_data( 'google_adsense', 'data-ad-client', 'pub-123456789' );

    参数说明:

    wp_script_add_data( string $handle, string $key, mixed $value )

    1> handle wp_enqueue_script函数定义的值

    2> key  script标签的meta key

    3> value script标签的meta value

    参考资料
    https://developer.wordpress.org/reference/functions/wp_enqueue_script/
    https://developer.wordpress.org/reference/functions/wp_script_add_data/

  • 使用TinyMCE增强WordPress编辑器功能

    尽管目前WordPress默认的编辑器是Gutenberg,但是很多人还是习惯经典编辑器。

    TinyMCE是一款开源的、多功能的、羽量级的、易用的、所见即所得编辑器,浏览器端部署,被业界广泛使用。同样,WordPress也可以轻松集成TinyMCE的出色功能:创建表格多选项的列表查找和替换设置字体集和字体大小和颜色,撤销操作等功能。

    原始编辑器

    安装TinyMCE Advanced插件后的编辑器

    插件下载地址:https://wordpress.org/plugins/tinymce-advanced/

    TinyMCE兼容Gutenberg编辑器。

  • WordPress上传图片出错常见原因分析

    WordPress上传图片出错常见原因分析,以Linux/Ubuntu 16.04 LTS 操作系统为例说明。

    1.  目录权限问题

    如果PHP进程所属用户没有 uploads 目录的写权限,上传就会失败。

    可以使用命令 ps -ef | grep fpm 来查看,默认的用户名一般是 www-data

    然后使用命令 ls -l 查看图片存储目录的属主和权限

    如果目录属主不一致,使用 chown www-data:www-data uploads -R 将uploads的所属用户和所属用户组修改为www-data

    如果目录不可写,使用 chmod 0777  uploads -R 将uploads的目录权限修改为可写,

    当php-fpm进程和uploads目录所属用户一致,并且开放了写权限,就规避了无法写入的问题。

    当然,也不一定要求两者所属用户一致,uploads目录开放了其他用户的写权限,php-fpm进程也是可以写入的。

    2. PHP配置参数原因

    php 通过两个参数来控制客户端发送数据包的大小,分别是 post_max_size upload_max_filesize

    post_max_size 设置了客户端向服务端发送数据的大小,

    upload_max_filesize 设置了上传文件的最大值,

    具体的大小,可以通过phpinfo()函数来查看,上传的媒体文件大小如果超过了这两个值,就会出现错误,

    在phpinfo()函数页面,找到Loaded Configuration File对应的文件,就是当前运行环境的配置文件,

    将其值修改为期望的大小,然后重启php-fpm进程就可以了。

    service php7.0-fpm restart

    3. Nginx/Apache配置参数原因

    以Nginx为例,为了保证服务器稳定,也有一个默认的限制发送来的HTTP数据包大小的配置参数  client_max_body_size

    通常这个配置并未出现在Nginx的配置文件里面,但是如果遇到Nginx 报 413  Request Entity Too Large Error这样的错误,就说明请求的数据内容超出了限制。

    如果要自定义这个参数,只需在 Nginx 的配置文件/etc/nginx/nginx.conf里面的http{….}之间添加一行代码

    client_max_body_size 10M;

    这样就把上传文件的大小设置为最大10M了

    然后执行下面的命令重新载入 Nginx 的配置即可生效

    service nginx reload

    以上3点是遇到WordPress不能上传图片或者媒体文件时应该注意的地方。

     

  • 使用WordPress缓存插件WP Super Cache加速您的网站

    WordPress插件WP Super Cache是WordPress母公司Automattic开发的免费缓存插件,可以将网站的内容生成为静态的html文件,之后用户访问服务器就不用解析PHP代码,可以明显得提升访问速度。

    它的自定义功能选项也很完善,可以指定普通模式或者专家模式两种缓存模式,专家模式下需要修改web代理服务器的规则配置。

    还可以针对登陆用户匿名用户使用不同的缓存策略,自定义缓存的目录,自定义页面对评论内容的缓存策略,自定义缓存的刷新时间和垃圾回收的频率,以及配置CDN和预先缓存等高级功能。

    安装的时候要注意给缓存目录和wp-config.php配置文件开放写权限。

  • WordPress自动升级

    在wp-config.php中添加下列代码即可:

    define('WP_AUTO_UPDATE_CORE', true);
    add_filter( 'auto_update_plugin', '__return_true' );
    add_filter( 'auto_update_theme', '__return_true' );

     

  • 使用WordPress懒加载插件a3 Lazy Load加速您的站点

    WordPress插件a3 Lazy Load可以实现网页的懒加载,页面资源会依据需求延迟加载,对于提升用户体验非常有用。

    下载地址: https://wordpress.org/plugins/a3-lazy-load/

    对于包含大量图片的网页,首次打开时,不需要加载所有图片,只需要加载首屏显示图片即可,只有当用户下拉时才触发请求继续加载,这样做会提高网页打开的速度,不是所有用户都会下拉浏览网页全部内容,所以也节省了带宽。

    这款插件体积小,配置简单,对于需要展示大量图片的页面是非常有用的,延迟加载的内容不限于图片,还可以是视频或者iframe。

    需要注意的是,如果您的网站比较注重搜索引擎索引,那么二次加载会导致搜索引擎获取到的只是一个网页框架而没有实际内容,这样不利于SEO,虽然现在搜索引擎可以模拟客户端的Javascript脚本动作,但是对用户行为的模拟和实际有所差异。

  • WordPress图片存储优化插件Custom Media Path

    基于WordPress搭建的网站上传的图片,

    默认的存储目录结构为按月存储,例如

    wp-content/uploads/2017/07

    这样一个月内上传的图片,都会存储在同一个目录下,

    对于单月上传图片特别多的网站,

    图片的读写速度将会变慢,

    另外,WordPress会保留图片的原始名称,

    实际情况是很多图片名称冗长且编码混乱,

    这将导致图片的访问和一些代码不能正常运行,

    为了规避这个问题,可以每天新建一个目录,

    这样每个目录的文件数量就不会太大。

    另外,按一定规则重新命名上传的图片。

    以下插件,实现了上述功能,有需要的可以下载安装。

    https://github.com/hawktian/wordpress-custom-media-path