通过wordpress钩子接口实现新增修改删除文章后执行相应动作

wordpress hook介绍

hook是wordpress实现功能扩展的重要手段,详细的介绍:
Plugin API

hook主要分两类:actions 和filters。
对应的注册函数分别为:add_action()和add_filter()。

目前支持的hook类型参见:http://adambrown.info/p/wp_hooks

例子

在模板的基础函数文件中:
/data/wp/wordpress/wp-content/themes/premium-style/functions.php

新增以下代码:

function publish_post_extra($post_ID){
    // 1. 初始化
    $ch = curl_init();
    // 2. 设置选项,包括URL
    curl_setopt($ch, CURLOPT_URL, "https://xxx" . $post_ID);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    // 3. 执行
    curl_exec($ch);
}
add_action('publish_post', 'publish_post_extra');
add_action('deleted_post', 'publish_post_extra');

以上的代码实现动作发生时,发送一个特定的通知url。

centos系统lnmp(nginx,mysql,php)环境搭建

新拿到vps,基本是裸机环境,如果要搞wordpress或者php后台,就需要php环境。

本来想手动安装,结果发现lnmp的一键脚本有更新。作者已经更新了1.2版本,基本都可以选择最新的版本了。http://lnmp.org/install.html

安装成功!

如果你担心以上脚本的安全性,也可以自己亲手安装官方的版本

  • 安装mysql
yum install -y mysql-server mysql mysql-deve

开机启动

chkconfig mysqld on

设置密码

mysqladmin -uroot password 'newpassword'
  • 安装nginx

设置 yum源

vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=

安装

yum install nginx

如果需要添加www 用户和组

groupadd -f www
useradd -g www www
  • 安装apache

安装apache 主要是因为wordpress的静态url路由需要相应的组件。

yum install httpd
chkconfig httpd on

 

 

 

 

wordpress手动升级后由于文件目录权限问题导致无法上传附件

手动升级wordpress 后,发现无法上传附件,于是仔细分析新文件夹和老备份文件的差异,发现是由于cp时改变了upload 文件夹属性导致。wordpress upload文件夹的 归属是 apache:apache  所以在手动更新文件时,要使用 -Rp 参数,保持原文件的属性不变。