存档

文章标签 ‘wordpress’

wordpress代码分析之库结构分析

2009年8月3日

Wordpress共有10个表,按照功能大致分为四大类:

1  user: 用户信息,包括wp_users表和wp_usermeta表。

2   post: 文章及评论信息,包括wp_posts、wp_postmeta、wp_comments、wp_post2cat以及wp_categories五个表。

3   link: 链接信息,包括wp_links表和wp_linkcategories表。

4   option: 全局设置信息,包括wp_options表。

表的命名规则也很有意思。基本规则总结如下:

1  保存对象的基本属性,命名为 wp_objects,使用复数(如 wp_posts,wp_comments);

2   保存对象的扩展属性,命名为 wp_objectmeta,使用单数(如wp_postmeta,wp_usermeta);

3   多对多关系,命名为 wp_a2b,其中a和b分别为多对多关系两端的对象名的缩写(如wp_post2cat)。

wp_categories: 用于保存分类相关信息的表。包括了5个字段,分别是:
cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment。
cat_name – 某个分类的名称,为一个varchar(55)值。
category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值。
category_description – 某个分类的详细说明,longtext型值。
category_parent – 分类的上级分类,为一个int(4)值,对应是的当前表中的cat_ID,即wp_categories.cat_ID。无上级分类时,这个值为0。

以下是表的分析:

1)  wp_comments: 用于保存评论信息的表。包括了15个字段,分别为:
comment_ID – 每个评论的唯一ID号,是一个bigint(20)值。带有附加属性auto_increment。
comment_post_ID – 每个评论对应的文章的ID号,int(11)值,等同于wp_posts.ID。
comment_author – 每个评论的评论者名称,tinytext值。
comment_author_email – 每个评论的评论者电邮地址,varchar(100)值。
comment_author_url – 每个评论的评论者网址,varchar(200)值。
comment_author_IP – 每个评论的评论者的IP地址,varchar(100)值。
comment_date – 每个评论发表的时间,datetime值(是加上时区偏移量后的值)。
comment_date_gmt – 每个评论发表的时间,datetime值(是标准的格林尼治时间)。
comment_content – 每个评论的具体内容,text值。
comment_karma – 不详,int(11)值,默认为0。
comment_approved – 每个评论的当前状态,为一个枚举值enum(’0′,’1′,’spam’),0为等待审核,1为允许发布,spam为垃圾评论。默认值为1。
comment_agent – 每个评论的评论者的客户端信息,varchar(255)值,主要包括其浏览器和操作系统的类型、版本等资料。
comment_type – 不详,varchar(20)值。
comment_parent – 某一评论的上级评论,int(11)值,对应wp_comment.ID,默认为0,即无上级评论。
user_id – 某一评论对应的用户ID,只有当用户注册后才会生成,int(11)值,对应wp_users.ID。未注册的用户,即外部评论者,这个ID的值为0。

2)   wp_linkcategories: 用于保存在WP后台中添加的链接的相关信息的表。包括13个字段:
cat_id – 每个链接分类的唯一ID,bigint(20)值,为一个自增量auto_increment。
cat_name – 每个链接分类的名字,tinytext值。
auto_toggle -这个字段所包含的是一个比较特别的属性。如果为Y,则当该分类中加入了新链接时,其它的链接会变为不可见。它是一个枚举型的值enum(’Y’,’N’),默认为N。
show_images – 该字段也是枚举值enum(’Y’,’N’),默认为Y。用户指定是否允许在该链接分类显示图片链接。
show_description – 该字段指定相应的链接分类下的链接,是否再专门[换行]显示它们的说明,这是一个枚举型值enum(’Y’,’N’),默认为N,即不显示说明(但会通过title属性中显示说明)。
show_rating – 显示该分类下链接的等级。它也是一个枚举值enum(’Y’,’N’),默认为Y。此时,你可以用链接等级的方式来对该链接分类下的链接进行排序。
show_updated – 指定该链接分类有更新是,是否进行显示,枚举值enum(’Y’,’N’),默认为Y。
sort_order – 指定该链接分类中链接的排序依据,varchar(64)值。一般用链接的名字(name,即wp_links.link_name)或ID(id,即wp_links.link_id)。
sort_desc – 指定链接分类的排序方式,枚举值enum(’Y’,’N’),默认为N,即用降序。
text_before_link – 该链接分类下每个链接的前置html文本,varchar(128)值,默认是’列表开始标签’。
text_after_link – 该链接分类下每个链接的中,链接与说明文字(wp_links.link_description)之间的html文本,varchar(128)值,默认是’换行标签’。
text_after_all – 该链接分类下每个链接的后置html文本,varchar(128)值,默认是’列表结束标签’。
list_limit – 用于规定某一链接分类中显示的(可设定的?)链接的个数,int(11)值,默认为-1,即对链接分类下链接的个数无限制。

3)wp_links :用于保存用户输入到Wordpress中的链接(通过Link Manager)的表。共14个字段:
link_id – 每个链接的唯一ID号,bigint(20)值,附加属性为auto_increment。
link_url – 每个链接的URL地址,varchar(255)值,形式为http://开头的地址。
link_name – 单个链接的名字,varchar(255)值。
link_image – 链接可以被定义为使用图片链接,这个字段用于保存该图片的地址,为varchar(255)值。
link_target – 链接打开的方式,有三种,_blank为以新窗口打开,_top为就在本窗口中打开并在最上一级,none为不选择,会在本窗口中打开。这个字段是varchar(25)值。
link_category – 某个链接对应的链接分类,为int(11)值。相当于wp_linkcategories.cat_id。
link_description – 链接的说明文字。用户可以选择显示在链接下方还是显示在title属性中。varchar(255)值。
link_visible – 该链接是否可以,枚举enum(’Y’,’N’)值,默认为Y,即可见。
link_owner – 某个链接的创建人,为一int(11)值,默认是1。(应该对应的就是wp_users.ID)
link_rating – 链接的等级,int(11)值。默认为0。
link_updated – 链接被定义、修改的时间,datetime值。
link_rel – 链接与定义者的关系,由XFN Creator设置,varchar(255)值。
link_notes – 链接的详细说明,mediumtext值。
link_rss – 该链接的RSS地址,varchar(255)值。

4)wp_options: 用于保存Wordpress相关设置、参数的表,共11个字段。最重要是的option_value字段,里面包括了大量的重要信息。
option_id – 选项的ID,bigint(20)值,附加auto_increment属性。
blog_id – 不详。或许用在单在用户的WP版本上并不重要吧,或许是针对不同用户的Blog来设置的一个值。int(11)值,默认为0,即当前blog。
option_name – 选项名称,varchar(64)值。
option_can_override – 该选项是否可被重写、更新,枚举enum(’Y’,’N’)值,默认为Y,即可被重写、更新。
option_type – 选项的类型,作用不详,int(11)值,默认为1。
option_value – 选项的值,longtext值,这个字段的内容比较重要。Wordpress初始化时就会设定好约70个默认的值,这里暂不介绍。
option_width – 选项的宽(?),作用不详。int(11)值,默认为20。
option_height – 选项的高(?),作用不详。int(11)值,默认为8。
option_description – 针对某个选项的说明,tinytext值。
option_admin_level – 设定某个选项可被操纵的用户等级(详情见我的相关文章),int(11)值,默认为1。
autoload – 选项是否每次都被自动加载,枚举enum(’yes’,’no’)值,默认为yes。

5)wp_post2cat: 用于保存文章(posts)与分类(categories)之间的关系的表,只有三个字段:
rel_id – 关联ID,bigint(20)值,是个有auto_increment属性的自增量。
post_id – 文章的ID,bigint(20)值,相当于wp_posts.ID。
category_id – 分类的ID,也是bigint(20)值,相当于wp_categories.ID。
文章与分类的关系的形成是这样的:rel_id是一个不断增加的自增量,它用于识别每不同的post。post_id可以重复(当它对应多个分类时),因为它可被rel_id识别,所以不会出现混乱。每个post_id可对应多个category_id时,一个rel_id +post_id组合,可以识别某一个分类,因此每个文章的分类可以是不同的。通过这张表,可以非常快速、高效地找出某篇文章(post)对应了哪些分类(category),反之亦然。

6)wp_postmeta – 用于保存文章的元信息(meta)的表,四个字段:
meta_id – 元信息ID,bigint(20)值,附加属性为auto_increment。
post_id – 文章ID,bigint(20)值,相当于wp_posts.ID。
meta_key – 元信息的关键字,varchar(255)值。
meta_value – 元信息的值,text值。
这些内容主要是在文章及页面编辑页(Write Post, Write Page)的”Add a new custom field tothispost(page):”下进行设定的。meta_key就对应名为”key”的下拉列表中的项,而值由用户自己填上(某些时候,wp也会自动加入,如文章中有的音频媒体)。

7)wp_posts: 用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。
ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。
post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。
post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。
post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。
post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。
post_title – 文章的标题,text值。
post_category – 文章所属分类,int(4)值。
post_excerpt – 文章摘要,text值。
post_status -文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。
comment_status -评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。
ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。
post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。
post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。
to_ping – 强制该文章去ping某个URI。text值。
pinged – 该文章被pingback的历史记录,text值,为一个个的URI。
post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。
post_modified_gmt – 文章最后修改的GMT时间,datetime值。
post_content_filtered – 不详,text值。post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。
guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的Wordpress站点地址+文章名。
menu_order – 不详,int(11)值,默认为0。
post_type – 文章类型,具体不详,varchar(100)值。默认为0。
post_mime_type – 不详。varchar(100)值。
comment_count – 评论计数,具体用途不详,bigint(20)值。

8)wp_usermeta : 用于保存用户元信息(meta)的表,共4个字段:
umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。
user_id – 元信息对应的用户ID,bigint(20)值,相当于wp_users.ID。
meta_key – 元信息关键字,varchar(255)值。
meta_value – 元信息的详细值,longtext值。
这是在Wordpress 2.0中才新加入的表。

9)wp_users:用于保存Wordpress使用者的相关信息的表。WP官方对2.0.2版本中该表的情况的说明有些矛盾(称有22个字段,但详细的列表中只有11个),所以这里只能列出11个字段进行说明:
ID – 用户唯一ID,bigint(20)值,带附加属性auto_increment。
user_login – 用户的注册名称,varchar(60)值。
user_pass – 用户密码,varchar(64)值,这是经过加密的结果。好象用的是不可逆的MD5算法。
user_nicename – 用户昵称,varchar(50)值。
user_email – 用户电邮地址,varchar(100)值。
user_url – 用户网址,varchar(100)值。

10)user_registered – 用户注册时间,datetime值。
user_level – 用于等级,int(2)值,可以是0-10之间的数字,不同等级有不同的对WP的操作权限。
user_activation_key – 用户激活码,不详。varchar(60)值。
user_status – 用户状态,int(11)值,默认为0。
display_name – 来前台显示出来的用户名字,varchar(250)值。
通过这10张表,我们可以看出,整个wp系统所涉及的主要内容包括:
文章(页面)及其分类
链接及其分类
选项、设置
用户设定等内容。

直接查看其结构图,更加清晰.

wordpress数据库结构图

也不可否认,WP在数据库设计方面的确做得不错。

PHP教程, wordpress

AdSense Manager教程

2009年5月15日

本博之前曾讲过WordPress 的十佳Google AdSense插件,其实,对于在博客中添加AdSense其实非常简单。这里再向大家介绍一种管理AdSense的插件:AdSense Manager。

AdSense Manager是一款用于管理广告投放位置的 WordPress 插件,可以让您轻轻松松的在文章中插入广告,不仅适用于 Google AdSense,而且几乎适用于其他所有的广告。

下面就详细的介绍如何使用 AdSense Manager 来管理您的广告,特别是Google AdSense。

一、下载并安装 AdSense Manager

1、下载地址:http://wordpress.org/extend/plugins/adsense-manager/

2、下载后解压,再将整个“adsense manager”文件夹上传到Wordpress 的wp-content/plugin目录下,并修改其权限(只针对Unix/Linux)。

3、到wordpress后台管理的插件里激活该插件。

当然也可以采用wordpress的插件自动安装,不过需要输入你的空间密码。安装完成后,也需要修改权限和激活。

二、创建 Ad Units

1、点击管理(Manage)页面的 Ad Units,您会看到这样的画面:

adsense manager

点击 “Create New Ad”,进入——

2、插入您的广告代码,然后点击“ Import to New Ad Unit”:

adsense manager

3、编辑广告显示的位置和代码:

AdSense Manager

在 Display option 中选择您是否允许广告出现在主页、Post 页面、Page 页面、Archive 页面以及搜索页面,如果您对这些没有偏好,可以忽略此项。

Wrap Html Code 顾名思义就是把广告包住的代码,可以规定广告的位置以及边距,如果没有填,您的广告就会默认居左,并且会和旁边的文字连在一起,很难看。所以,如果您想在文章中插入广告并想使广告好看一点,这个一定要填。其中:

<before> 处可以填:<div style=”padding:0 10px 10px 0; float:left”> 。(如果您想广告居右显示,把 left 改为 right。)

</after> 处总是填:</div>

Notes 处可以添加广告说明。

填完之后点击“Save Changes”。

三、在文章中插入广告

adsense manager

不管是在写 Post 还是写 Page,您都可以在文章中的任何位置插入广告,这篇文章开头的那个广告就是这么炮制的。

如果您嫌这样插入广告还是有点麻烦,想一劳永逸,可以——

四、在模板中插入广告代码

按照 AdSense Manager 的说明,在您的模板(例如 Single.php)中找个自己喜欢的位置插入下面任意一个广告代码:

1. <?php adsensem_ad(’name’); ?>——把 name 改为 广告代号(例如上面创建的“co-1”)。

2. <?php adsensem_ad(); ?> ——如果您想显示默认的广告。

其实,如果您想在模板上插入广告代码,完全可以不必使用 AdSense Manager,直接把原始的广告代码插进去就行了。

如果您对HTML语言比较熟悉的话,最好还是直接插入广告代码,这样相对而言比较方便,当然你也可将其全部交给AdSense Manager去管理。

wordpress, 网络赚钱 , , ,

WordPress十款最佳Google Adsense插件

2009年5月14日
[ad#ad-1]

今天终于通过了Google Adsense审核,加入了Google Adsense广告联盟了,将可以在本博上挂展示广告了。

对于Google Adsense,WordPress有很多关于这方面的插件,也不想自己一个个的去处理这些广告,想将其交给Wordpress 的Adsense插件来处理。一G,原来还有这么多好的Google Adsense插件,于是将最好的几个介绍给大家。

Adsense Deluxe : 提供高级功能可以在文章中自动插入Google Adsense或者Yahoo Publisher Network的广告。Adsense Deluxe号称具有改进广告限制的算法。

Adsense Injection : 将Adsense代码随机插入原有文章中。

Adsense Inline : 在博客文章中插入Google Adsense代码。

Adsense Beautifier : 在Google Adsense旁边放置图像来美化广告,以便获得更多的点击率和广告收入。(译者注:此方法违反最新的Google Adsense政策)

AdSense Widget for WordPress Sidebar : 这个插件是为新的WordPress Sidebar Widgets设计的。

MightyAdsense : 可以让你不用修改Wordpress模板即可将代码加入,广告张贴后,你还可以指定可以在每页显示多少个广告块。

AdRotator Wordpress Plugin : 轮回你的Adsense广告和其他联盟广告,有助于减少广告显示的盲目性和试验不同广告方案的效果。

Adsense Earnings Wordpress Plugin : 在WordPress的管理员控制面板里显示你的Adsense的明细收入。

WP-AdsenseProfit : 在模板中的一个函数中增加一个简单的调用,即可显示你的Adsense收益。

AdSense Sharing Revenue and Earnings System : 让你可以查看你的Adsense收入,并将你的Adsense显示量共享给你的朋友或者合作伙伴。(译者注:此功能可能会违反Google Adsense政策)

Author Adsense Wordpress Plugin : 允许不同的博客作者输入自己的Google Adsense Publisher ID,并将自己的广告显示在自己发布的文章内以获得相应收益,管理员可以对此功能进行设置。

英文原文:10 Best Wordpress Plugins for Google Adsense

中文译文:WordPress的十大Adsense插件

wordpress, 网络赚钱 , ,

本博开通wap访问

2009年5月8日

昨晚与一朋友交淡,谈到了wap,也谈了一些其它我不曾了解的东西,让我感觉我需要学习的东西还很多。在这里表示感谢。

既然谈到了wap,那本博今天上班把手上的工作弄完了,即刻了解关于wordpress的wap插件。看了一下,关于WP的插件还不少,国内有一友人所做的wp-t-wap还是挺不错,于是乎就采用他的这个插件吧。感觉这位朋友的无私奉献!

本博手机访问地址:

http://wap.phpcoding.cn

http://www.phpcoding.cn/wap

以上两个均可,若第一个不能正常访问,敬请使用第二种地址!

这个插件对于想采用网站的手机浏览和管理功能的博主而言,倒是一不二选择。

对于wp-t-wap插件呢,使用其实也很简单,这里简单的说一下。

1、安装

a、可采用直接下载wp-t-wap压缩包的方式,然后将其解压至plugin目录下。也可采用WP所带的在线安装方式。当然安装完成后,对于linux/unix平台,需要将wp-t-wap目录添加权限,一般而言,如果不是特别需要,就设置为777,免得一切烦恼!

b、  在网站根目录下添加wap目录,当然对于Unix/Linux平台还是需要添加写权限。然后在wp插件管理中,将wp-t-wap激活。此时,将会把一些文件拷贝到wap目录。如果权限不对,将会出错。

c、现在就可以采用http://www.phpcoding.cn/wap/进行访问了。

2、域名绑定

如果空间支持域名绑定到目录,对只需要在虚拟主机管理界面中将子域名wap.phpcoding.cn指定该目录即可。若空间不支持,完了?!怎么办呢?不急,还可以采用URL转发的方式,去你申请域名的地方吧,添加一个URL转发申请,好像需要域名服务商进行审核,审核通过过,就可以采用wap.phpcoding.cn访问博客了。

3、罗列一下wp-t-wap的功能特征

 

最新特征:

  • 续写日志(文字和图片) 
  • 支持 imax-width 插件
  • 支持 Wordpress MU

功能 (最新版本):

  • 浏览、添加、修改、删除文章
  • 浏览、发表、删除、审批评论
  • 发布图文日志(发布时附带一张图片)
  • 单个文章分页显示(在需要分页的地方添加“<!–nextpage–>”的HTML代码)
  • 日志保存为草稿
  • 显示相邻文章链接
  • 首页显示最新评论
  • 首页显示热门文章(需要安装WP-PostViews插件)
  • 相关文章(需要安装WP 2.3 Related Posts插件)
  • 分类文章列表
  • 标签文章列表
  • 自定义WAP网站标题
  • 中英文双语国际化
  • 域名绑定
  • 支持 Wordpress MU
  • 支持 imax-width 插件

wordpress , ,

获取 WordPress.com API Key

2009年2月23日

在使用WorkPress架站后,大多会使用内置的反垃圾留言插件Akismet,而使用该插件往在安装完成后需要输入WordPress.com API Key,根据所提供的地址,根本就过不去。这是因为workpress.com被干掉了,怎么办呢?

首先,去http://anchorfree.com下载一个Hotspot shield,安装后启动。它将给你一个VPN地址,这个可以不管。但至少得看到右下角它的图标为绿色,表示启动成功。

然后就可以直接打开wordpress.com站点。需要进行注册,注册完成后,就会往你里的邮箱里面发一封确认mail,剩下的就是点击该链接完成注册了。

这时你就拥有你的WorkPress.com API Key了。使用它的强大功能为你的BLOG护航吧

wordpress , , , , , ,