在本地开发的时候,由于有很多东西依赖于
cookie
,有些插件在写入cookie
的时候可能没有判断服务端口导致无法写入cookie
,功能无法正常使用,所以在开发和使用过程中最好用正常的http
端口,即80
或443
开发时最好打开调试模式:
1
2
3
4vim wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('SCRIPT_DEBUG', true);
插件开发基本概念
插件目录结构
在
wordpress
源码的/wp-content/plugins
下,一个目录就是一个插件插件内部的目录结构一般是这样的:
1
2
3
4
5
6
7
8
9test-plugin
├── assets
│ ├── css
│ │ └── test-plugin.css
│ └── js
│ └── test-plugin.js
├── include
│ └── test-plugin.php
└── readme.txt
帮助函数
用户相关函数
wp_signon
- 通过用户名密码获取用户信息
1 | $user = wp_signon(['user_login' => 'xxx', 'user_password' => 'xxx'], false); |
wp_update_user
- 更新用户指定字段,但不知道为什么,就是不能更新用户的
user_status
字段,最后我只能$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->users} SET user_status = 1 WHERE ID = %d", $user->ID ))
来吧用户spam了
1 | wp_update_user([ |
get_user_by
- 通过制定字段获取用户
1 | get_user_by( 'id', $userId ); |
get_user_meta
通过用户ID获取用户元信息
get_user_meta( int $user_id, string $key = '', bool $single = false)
,key
表示指定获取某个信息,默认是所有;single
表示是否获取单个值,如果为true
则不是返回对象,而是需要获取的value
get_users
- 获取满足条件的用户列表
get_users( *array* $args = array() )
1 | get_users([ |
WP_User_Query
- 获取满足条件的用户列表
1 | $args = array( |
文章相关函数
1 | # get_permalink, 获取永久链接 |
对象相关函数
get_the_ID()
- 获取当前遍历的对象的ID
get_the_title()
- 获取当前遍历的对象的title
全局类/全局变量
1 | # Wp类 |
数据库相关函数
$wpdb
是数据库操作的全局对象
1 | global $wpdb; |
插件管理相关函数
is_plugin_active
- 验证指定插件是否激活
1 | is_plugin_active( 'plugin-directory/plugin-file.php' ) |
邮件相关函数
wp_mail
- 发送邮件
wp_mail( *string|array* $to, *string* $subject, *string* $message, *string|array* $headers = '', *string|array* $attachments = array() )
1 | // 设置header |
Hooks
Actions Hooks
- 内核在执行到指定
action
的时候会直接调用你的函数
new_to_publish
draft_to_publish
pending_to_publish
Filter Hooks
- 过滤钩子,接收一个值并在可能的修改后进行返回,必须返回传入的第一个参数
pre_get_posts 搜索文章/获取文件列表前
1 | // 这个函数可以放到functions.php里面或者其他能够记载的地方 |
接口
添加自定义接口
1 |
|