wordpress显示公式

EdrawMath

https://math.edrawsoft.cn/index.html

在线编辑后,直接复制。

如果wordpress识别不了则使用mathjax。

mathjax

选择外观->Theme Editor

编辑header.php

<script type=”text/javascript” async
src=”https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML”></script>

js文件要在<? php wp_head(); ?>之前引入。

使用http://latex.codecogs.com/eqneditor/editor.php生成公式

$$…$$与\[…\]是块
\(…\)是内联
例子:\(\sqrt{a^2+b^2}\)

\(\sqrt{a^2+b^2}\)

参考资料

https://math.edrawsoft.cn/index.html

http://www.fanyeong.com/2017/07/21/wordpress-how-to-display-equation/

http://latex.codecogs.com/eqneditor/editor.php

https://www.mathjax.org/

wordpress数据库分析

概要介绍

wp_users 用户

wp_usermeta 用户的元数据

wp_posts 文章

wp_postmeta 文章元数据

wp_comments 评论

wp_commentmeta 评论元数据

wp_terms 分类、标签

wp_termmeta 分类、标签元数据

wp_term_taxonomy 分类、标签的父子级关系

wp_term_relationships 文章与分类的关系

wp_links 友情链接

wp_options 系统选项、插件、主题配置

wp_users

CREATE TABLE wp_users (
ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
user_login varchar(60) NOT NULL DEFAULT ”,
user_pass varchar(255) NOT NULL DEFAULT ”,
user_nicename varchar(50) NOT NULL DEFAULT ”,
user_email varchar(100) NOT NULL DEFAULT ”,
user_url varchar(100) NOT NULL DEFAULT ”,
user_registered datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
user_activation_key varchar(255) NOT NULL DEFAULT ”,
user_status int(11) NOT NULL DEFAULT ‘0’,
display_name varchar(250) NOT NULL DEFAULT ”,
PRIMARY KEY (ID),
KEY user_login_key (user_login),
KEY user_nicename (user_nicename),
KEY user_email (user_email)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

ID 自增唯一ID
user_login 登录名
user_pass 密码
user_nicename 昵称
user_email 邮箱
user_url 网址
user_registered 注册时间
user_activation_key 激活码
user_status 用户状态
display_name 显示名称

分别为登录名、昵称、邮箱创建了索引。

所有字段均不能为NULL,全部使用默认值”。

wp_usermeta

CREATE TABLE wp_usermeta (
umeta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
user_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
meta_key varchar(255) DEFAULT NULL,
meta_value longtext,
PRIMARY KEY (umeta_id),
KEY user_id (user_id),
KEY meta_key (meta_key(191))
) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;

umeta_id 自增唯一ID
user_id 用户ID
meta_key 键名
meta_value 键值

分别为用户ID、键名创建了索引,键名的索引只取了191的长度。

使用元数据表来保存扩展信息的原因可能是:
避免增加字段时要在原表加一列,可以尽量少的修改原代码。
避免原表出现长字符串和不常用的字段,提高了原表的查询性能。

wp_posts

CREATE TABLE wp_posts (
ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
post_author bigint(20) unsigned NOT NULL DEFAULT ‘0’,
post_date datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
post_date_gmt datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
post_content longtext NOT NULL,
post_title text NOT NULL,
post_excerpt text NOT NULL,
post_status varchar(20) NOT NULL DEFAULT ‘publish’,
comment_status varchar(20) NOT NULL DEFAULT ‘open’,
ping_status varchar(20) NOT NULL DEFAULT ‘open’,
post_password varchar(255) NOT NULL DEFAULT ”,
post_name varchar(200) NOT NULL DEFAULT ”,
to_ping text NOT NULL,
pinged text NOT NULL,
post_modified datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
post_modified_gmt datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
post_content_filtered longtext NOT NULL,
post_parent bigint(20) unsigned NOT NULL DEFAULT ‘0’,
guid varchar(255) NOT NULL DEFAULT ”,
menu_order int(11) NOT NULL DEFAULT ‘0’,
post_type varchar(20) NOT NULL DEFAULT ‘post’,
post_mime_type varchar(100) NOT NULL DEFAULT ”,
comment_count bigint(20) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (ID),
KEY post_name (post_name(191)),
KEY type_status_date (post_type,post_status,post_date,ID),
KEY post_parent (post_parent),
KEY post_author (post_author)
) ENGINE=MyISAM AUTO_INCREMENT=63 DEFAULT CHARSET=utf8;

ID 自增唯一ID
post_author 作者ID
post_date 发布时间
post_date_gmt 发布时间(GMT+0时间)
post_content 正文
post_title 标题
post_excerpt 摘录
post_status 文章状态(publish/auto-draft/inherit等)
comment_status 评论状态(open/closed)
ping_status PING状态(open/closed)
post_password 文章密码
post_name 文章缩略名
to_ping 未知
pinged 已经PING过的链接
post_modified 修改时间
post_modified_gmt 修改时间(GMT+0时间)
post_content_filtered 未知
post_parent 父文章,主要用于PAGE
guid 未知
menu_order 排序ID
post_type 文章类型(post/page等)
post_mime_type MIME类型
comment_count 评论总数

分别为文章缩略名、父文章、作者ID创建了索引,并为文章类型、文章状态、发布时间、ID创建了组合索引。

将评论总数单独保存,对查询速度有利,但会增加开发难度,不易保证数据的一致性。

wp_postmeta

CREATE TABLE wp_postmeta (
meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
post_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
meta_key varchar(255) DEFAULT NULL,
meta_value longtext,
PRIMARY KEY (meta_id),
KEY post_id (post_id),
KEY meta_key (meta_key(191))
) ENGINE=MyISAM AUTO_INCREMENT=116 DEFAULT CHARSET=utf8;

meta_id 自增唯一ID
post_id 文章ID
meta_key 键名
meta_value 键值

为文章ID、键名分别创建了索引

wp_comments

CREATE TABLE wp_comments (
comment_ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
comment_post_ID bigint(20) unsigned NOT NULL DEFAULT ‘0’,
comment_author tinytext NOT NULL,
comment_author_email varchar(100) NOT NULL DEFAULT ”,
comment_author_url varchar(200) NOT NULL DEFAULT ”,
comment_author_IP varchar(100) NOT NULL DEFAULT ”,
comment_date datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
comment_date_gmt datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
comment_content text NOT NULL,
comment_karma int(11) NOT NULL DEFAULT ‘0’,
comment_approved varchar(20) NOT NULL DEFAULT ‘1’,
comment_agent varchar(255) NOT NULL DEFAULT ”,
comment_type varchar(20) NOT NULL DEFAULT ”,
comment_parent bigint(20) unsigned NOT NULL DEFAULT ‘0’,
user_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
PRIMARY KEY (comment_ID),
KEY comment_post_ID (comment_post_ID),
KEY comment_approved_date_gmt (comment_approved,comment_date_gmt),
KEY comment_date_gmt (comment_date_gmt),
KEY comment_parent (comment_parent),
KEY comment_author_email (comment_author_email(10))
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

comment_ID 自增唯一ID
comment_post_ID 文章ID
comment_author 评论者
comment_author_email 评论者邮箱
comment_author_url 评论者网址
comment_author_IP 评论者IP
comment_date 评论时间
comment_date_gmt 评论时间(GMT+0时间)
comment_content 评论正文
comment_karma 未知
comment_approved 评论是否被批准
comment_agent 评论者的USER AGENT
comment_type 评论类型(pingback/普通)
comment_parent 父评论ID
user_id 评论者用户ID(不一定存在)

分别为文章ID、评论时间、父评论ID、评论者邮箱创建索引,为是否被批准、评论时间创建组合索引。

wp_commentmeta

CREATE TABLE wp_commentmeta (
meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
comment_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
meta_key varchar(255) DEFAULT NULL,
meta_value longtext,
PRIMARY KEY (meta_id),
KEY comment_id (comment_id),
KEY meta_key (meta_key(191))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

meta_id 自增唯一ID
comment_id 评论ID
meta_key 键名
meta_value 键值

分别为评论ID、键名添加索引

wp_terms

CREATE TABLE wp_terms (
term_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
name varchar(200) NOT NULL DEFAULT ”,
slug varchar(200) NOT NULL DEFAULT ”,
term_group bigint(10) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (term_id),
KEY slug (slug(191)),
KEY name (name(191))
) ENGINE=MyISAM AUTO_INCREMENT=67 DEFAULT CHARSET=utf8;

term_id 分类ID
name 分类名
slug 缩略名
term_group 未知

分别为缩略名、分类名创建索引

wp_termmeta

CREATE TABLE wp_termmeta (
meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
term_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
meta_key varchar(255) DEFAULT NULL,
meta_value longtext,
PRIMARY KEY (meta_id),
KEY term_id (term_id),
KEY meta_key (meta_key(191))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

meta_id 自增唯一ID
term_id 分类ID
meta_key 键名
meta_value 键值

分别为分类ID和键名创建索引

wp_term_taxonomy

CREATE TABLE wp_term_taxonomy (
term_taxonomy_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
term_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
taxonomy varchar(32) NOT NULL DEFAULT ”,
description longtext NOT NULL,
parent bigint(20) unsigned NOT NULL DEFAULT ‘0’,
count bigint(20) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (term_taxonomy_id),
UNIQUE KEY term_id_taxonomy (term_id,taxonomy),
KEY taxonomy (taxonomy)
) ENGINE=MyISAM AUTO_INCREMENT=67 DEFAULT CHARSET=utf8;

term_taxonomy_id 分类方法ID
term_id 分类ID
taxonomy 分类方法(category/post_tag)
description 未知
parent 所属父分类方法ID
count 文章数统计

为分类ID和分类方法创建唯一索引,为分类方法创建索引。

wp_term_relationships

CREATE TABLE wp_term_relationships (
object_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
term_taxonomy_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
term_order int(11) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (object_id,term_taxonomy_id),
KEY term_taxonomy_id (term_taxonomy_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

object_id 对应文章ID/链接ID
term_taxonomy_id 对应分类方法ID
term_order 排序

文章ID、分类方法ID共同构成主键,为分类方法ID创建索引

wp_links

CREATE TABLE wp_links (
link_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
link_url varchar(255) NOT NULL DEFAULT ”,
link_name varchar(255) NOT NULL DEFAULT ”,
link_image varchar(255) NOT NULL DEFAULT ”,
link_target varchar(25) NOT NULL DEFAULT ”,
link_description varchar(255) NOT NULL DEFAULT ”,
link_visible varchar(20) NOT NULL DEFAULT ‘Y’,
link_owner bigint(20) unsigned NOT NULL DEFAULT ‘1’,
link_rating int(11) NOT NULL DEFAULT ‘0’,
link_updated datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
link_rel varchar(255) NOT NULL DEFAULT ”,
link_notes mediumtext NOT NULL,
link_rss varchar(255) NOT NULL DEFAULT ”,
PRIMARY KEY (link_id),
KEY link_visible (link_visible)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

link_id 自增唯一ID
link_url 链接URL
link_name 链接标题
link_image 链接图片
link_target 链接打开方式
link_description 链接描述
link_visible 是否可见(Y/N)
link_owner 添加者用户ID
link_rating 评分等级
link_updated 未知
link_rel XFN关系
link_notes XFN注释
link_rss 链接RSS地址

为是否可见创建索引

wp_options

CREATE TABLE wp_options (
option_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
option_name varchar(191) NOT NULL DEFAULT ”,
option_value longtext NOT NULL,
autoload varchar(20) NOT NULL DEFAULT ‘yes’,
PRIMARY KEY (option_id),
UNIQUE KEY option_name (option_name)
) ENGINE=MyISAM AUTO_INCREMENT=604 DEFAULT CHARSET=utf8;

option_id 自增唯一ID
option_name 键名
option_value 键值
autoload 在WordPress载入时自动载入(yes/no)

为键名创建唯一索引

小结

我使用的是WordPress 5.0.3。
wordpress各个版本的表结构几乎无变化,可能变化的字段都添加到元数据表里了。
写文章时发现一个BUG,对已经发布的文章编辑,嵌入链接时如果遇到自动保存,会很卡。

参考资料

https://www.cnblogs.com/wordblog/p/6591499.html

https://codex.wordpress.org/zh-cn:Main_Page