考虑:Linux + Apache + MySQL + PHP
(https://codex.wordpress.org/Nginx)
Wordpress代码规范:
http://codex.wordpress.org.cn/WordPress_%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83
WordPress编码标准:
https://make.wordpress.org/core/handbook/best-practices/coding-standards/
插件开发者手册:https://developer.wordpress.org/plugins/
主题手册:https://developer.wordpress.org/themes/
REST API:https://developer.wordpress.org/rest-api/
一个主题控制着内容的呈现 ;
一个插件是用来控制你的WordPress网站的行为和功能;
插件API /add_filter()参考:https://codex.wordpress.org/Plugin_API/Filter_Reference
插件API /add_action()参考:https://codex.wordpress.org/Plugin_API/Action_Reference
角色|能力:https://codex.wordpress.org/Roles_and_Capabilities
设计和布局:
https://codex.wordpress.org/zh-cn:%E5%8D%9A%E5%AE%A2%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%B8%83%E5%B1%80
UI插件:
http://www.jeasyui.net/
http://v3.bootcss.com/
调试插件:
https://developer.wordpress.org/themes/getting-started/setting-up-a-development-environment/#plugins
查询监视器:https://wordpress.org/plugins/query-monitor/,在顶部工具栏
主题检查:https://wordpress.org/plugins/theme-check,在外观>Theme Check
日志已弃用的声明:https://wordpress.org/plugins/log-deprecated-notices/,在工具deprecated Calls
https://iandunn.name/content/presentations/wp-oop-mvc/mvc.php
WordPress的插件骨架:
https://github.com/iandunn/WordPress-Plugin-Skeleton
前端组件库 http://getbootstrap.com/
在WordPress插件中实现MVC模式
MVC:
REST API:
https://developer.wordpress.org/rest-api/
http://v2.wp-api.org/
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
Nginx配置Restful风格url:
http://blog.csdn.net/u013961139/article/details/50792444
C:\Users\Administrator>curl -I http://localhost:8089
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sun, 12 Nov 2017 04:39:34 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.10
Link: <http://localhost:8089/index.php?rest_route=/>; rel="https://api.w.org/"
现在你只能能过以下代码访问路由
http://localhost:8089/index.php?rest_route=/hello-world/v1/phrase
在这里可以看到返回信息的描述结果
http://wp-api.org/guides/getting-started.html
该Link头告诉我们,对于API的基本网址为 http://example.com/wp-json。任何路线都应附加到此。例如,我们将在一秒钟内使用的API索引在/路由中可用,所以我们将其追加到URL以获取http://example.com/wp-json/ (注意尾部的斜杠)。
对于没有启用漂亮永久链接的网站,这将会返回类似的内容 http://example.com/?json_route=; 该路线应该再次作为字符串直接附加在API索引中http://example.com/?json_route=/
固定链接设置(在你启动的Wordpress程序>设置>固定链接,里设置):
https://codex.wordpress.org/File:permalink-settings.png
https://codex.wordpress.org/zh-cn:%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E9%93%BE%E6%8E%A5
Nginx配置:
https://codex.wordpress.org/Nginx
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
如果您使用默认永久链接(查询参数),则可以访问该API ?rest_route=/,例如http://demo.wp-api.org/?rest_route=/
配置完成后,再次查询
C:\Users\Administrator>curl -I http://localhost:8089
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sun, 12 Nov 2017 07:42:11 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.10
Link: <http://localhost:8089/wp-json/>; rel="https://api.w.org/"
https://wordpress.org/plugins/
内置的WordPress功能:
sanitize_*()
*_exists()
*_validate()
is_*()
esc_*()
_e()
__()
wp_create_nonce()
函数查询:
https://developer.wordpress.org/reference/
钩子库:
https://adambrown.info/
代码生成:
https://generatewp.com/
WordPress包含一个操作数据库的类——wpdb,该类基于ezSQL(由Justin Vincent维护的数据库操作项目)编写,包含了其基本的功能。
https://codex.wordpress.org/zh-cn:Class_Reference/wpdb
https://codex.wordpress.org/Function_Reference/wpdb_Class
PHP教程:http://www.w3school.com.cn/php/
REST API(Create a REST API with PHP):
http://hmw.iteye.com/blog/1190827
https://www.w3cschool.cn/php/php-restful.html
PHP 变量规则:
注释:PHP 变量名称对大小写敏感,关键字大小写不敏感!
PHP 有三种不同的变量作用域(关键字配置):
Local 和 Global 作用域(默认):
PHP 4.1.0+,超全局变量
在全部作用域中始终可用的内置变量
这些超全局变量是:
$GLOBALS #$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)
$_SERVER #$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
$_REQUEST #$_REQUEST 用于收集 HTML 表单提交的数据。
$_POST #$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
$_GET #$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_FILES
$_ENV
$_COOKIE
$_SESSION
$_SERVER[“PHP_SELF”] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。
htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。
PHP 常量:
注:常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
如需设置常量,请使用 define() 函数 - 它使用三个参数:
类常量-标识符const
可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
运算符:
字符串
.
.=
比较
=== #如果 $x 等于 $y,且它们类型相同,则返回 true。
!== #如果 $x 不等于 $y,或它们类型不相同,则返回 true。
逻辑
xor #如果 $x 和 $y 有且仅有一个为 true,则返回 true。
数组
=== #如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
!== #如果 $x 与 $y 完全不同,则返回 true。
函数
PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
PHP 用户定义函数(声明以关键字 “function” 开头):
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
默认参数:function setHeight($minheight=50)
数组
在 PHP 中,有三种数组类型:
count() 函数用于返回数组的长度(元素数)
关联数组:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
遍历
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "
";
}
?>
排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
表单认证
通过以下代码认证每个提交的表单数据:
// 定义变量并设置为空值
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
其它
foreach - 遍历数组中的每个元素并循环代码块(只适用于数组,并用于遍历数组中的每个键/值对)