WordPress的插件开发详细实战

针对目前非常流程的网站开发框架WordPress, 网络中充斥着各种各样的开发教程, 但感觉都是千篇一律, 对于想快速入手开发WP插件的爱好者来说, 或者急想找到一个能详细解读WP插件开发的实战, 我也是一个爱好WP开发的技术员, 现仅此把自己对插件开发的一些经验和大家分享, 希望能给广大WordPress爱好者一些帮助.

对于在网络上关于WordPress开发的一些教程介绍的一些插件的一些概念性的解释等, 这里就不再说说明, 这里仅把关于开发一个完整插件的一些程序接口等做解释.

一. WP的插件包结构普通为:

  1. css: 用于存放插件的样式表.
  2. images: 用于存放插件的图片文件.
  3. js: 用于存放插件的javascript等客户端脚本文件.
  4. language: 用于存放插件的语言包文件, 一般包括.mo和.po 两个文件.
  5. 插件入口文件: 和插件的文件夹的名称一致, 以插件的功能为命名标准为宜.
  6. help: 用于存放插件的辅组类库.

二. 插件入口文件的组成

  1. 插件的信息, 包括插件名称, URL, 插件功能描述, 开发作者, 版本和版权等信息, 开发一个插件, 做好能注释以上详细信息, 这也是一个针对WP开发插件的良好习惯. 例如如下:
    Plugin Name: Google API
    Plugin URI: https://www.ccjk.com
    Description: Use this plugin to be tested.
    Author: Your Name
    Version: 2.0.4
    Author URI: https://www.ccjk.com
    Copyright 2012 CCJK
  2. 加载语言包, 例如:
    load_plugin_textdomain( ‘test’, false, dirname( plugin_basename( __FILE__ ) ) . ‘/languages’ );
  3. 插件的初始化在哪个WP钩子上, 例如是在WP的后端初始化时初始化这个插件:
    add_action(‘admin_init’, ‘test_register’);//自定义回调函数, 可以用来引入该插件的样式表等等资源文件
    function test_register()
    {
    register_setting(‘settingpage_sample’, ‘settingpagesample’);
    //添加样式表
    wp_enqueue_style(‘settingpage_sampe’, plugin_dir_url(__FILE__).’css/css.css’);
    //添加js
    wp_enqueue_script(‘settingpage_sampe’, plugin_dir_url(__FILE__).’js/js.js’);}
  4. 插件在后端菜单的初始化, 例如:
    //在WP后端菜单初始化的时候,执行add_menu()函数,即是把add_menu()函数挂在admin_menu钩子上
    add_action(‘admin_menu’, ‘add_menu’);//自定义回调函数
    function add_menu()
    {
    //add_menu_page(‘test’, ‘test’, ‘manage_options’, ‘test-handle’, ‘test_index’);
    //添加菜单到WP的Setting菜单里面为子菜单, 并把回到函数(即参数settingpage_sample_index)中输出的内容显示在该子菜单的页面里面
    add_options_page(‘SettingPage Sample’, ‘SettingPage Sample’, ‘manage_options’, ‘settingpage-sample’, ‘settingpage_sample_index’);
    }//自定义回调函数
    function settingpage_sample_index()
    {
    … //实现插件的功能.

上面是一个WP插件的程序框架, 理解上面的各个函数和钩子的意思, 那就完全可以理解WP插件的开发过程.
对于一个比较复杂功能的插件, 可以把要实现的功能写在入口文件, 也可以写在其他文件, 或以类库形式用对象的方式来实现插件的功能, 这个主要是看开发人员自己对插件的要求.

wordpress添加支付宝支付功能

支付宝是目前国内最流行的电子支付平台。在国内,只要你做在线销售,就难免要和支付宝打交道。特别是由于目前支付宝的商家服务已经免去申请费(但是需要支付分润,1+%),支付宝就日益成为做网络营销的重要支付手段之一。
wordpress是一个开源的博客程序(但是现在,我们几乎内容把它变成了一个CMS内容管理系统了)。有着先天的搜索引擎友好性,是SEOer 的最爱。特别是,由于它的开源、简约,世界各地的wp爱好者为其开发了数以千计的功能拓展(plugins)以及数以万计的模板应用(theme)和微件 (widgets)。这些都是wp有着强大生命力的原因。
基于上面的原因,目前,有更多的seo人士希望把wp的SEO友好性、丰富的功能拓展与支付宝的通用性结合起来,通过wp与alipay的集成,实现转化率更高地在线销售。
不久前,我利用wp-mu,搞了一个新的多用户建站系统。虽然目标群体是广大的喜欢“免费”的用户,但是,出于盈利的考虑,还是希望将一些高级功通 过用户付费的方式才能使用。于是,就想到了在wp系统中嵌入支付宝支付通道。之前,我已经看到国内一些BSP(好像就那么几家)已经采用支付宝与wp集成 的方式,但不知道人家是怎么实现的。通过搜索,满眼看到的都是有着和我一样需求的人。另外,还有一些高人,动辄说要修改整站的结构才能实现集成云云。几天 下来,竟然无果。于是,打算自己动手尝试。结果是,很简单,成功了。
由于时间有限,这些步骤就不截图了。因为大家要么是做seo的,要么是做开发的,我用文字写出来,想必大家都能明白我说的啥。现在开始。
wp与支付宝系统集成的主要步骤:
a、申请支付宝商家服务
b、获取系统集成API
c、接口安装与代码修改
具体说:
(1)注册一个支付宝帐号。在这里:https://www.alipay.com/
(2)登录后,进入支付宝首页“商家服务”-“即时到帐(我需要的)”
(3)填写商家服务中心申请表格,并进行“签约商家”的实名认证。需要你提供真实的个人信息及手机号码,以便接收验证码
(4)提交信息并等待大约24小时
(5)接收签约商家确认邮件并下载系统集成需要的代码示例。如果你不懂代码,就登录支付宝官网上的“商家服务”,点击进入合同列表里的“申请集成”,请求支付宝的技术支持人员帮助你集成
(6)支付宝的技术支持人员会在你申请集成后的48小时内给你打电话。你告诉她你是wordpress系统,并告诉她你是网站的管理员,请她帮你设置好基于wp的接口程序。大约2小时后,一个基于wp环境的接口程序会发送到你的email中。
(7)下面的操作,都是基于php主机的。win应该也差不多,但是,不会有人用IIS配置wp吧?
(8)将支付宝发送给你的接口程序(rar压缩包),解压缩后,再压缩成zip的。至于为什么,因为我的是GD主机,只能用zip,这时,你的接口程序已经压缩为alipay.zip了
(9)在你的服务器中新建一个文件夹/alipay,并将alipay.zip压缩包上传至该目录。在服务器端解压缩
(10)完成解压缩后,访问支付宝接口程序的路径为:yourdomain.com/alipay/index.php
(11)至此,wp与alipay的系统成绩已经完成了一大半。此时的支付通道已经可以使用了!你可以试着以用户的身份进行一次支付并到支付宝账户中查看支付金额是否已经入账。
(12)一些修改:支付宝默认的接口页面可能与我们网站的整体风格不太相称。这时可能需要我们对页面做一些修改。如:
l 在<TD>处修改支付页面的名称;
l 在<TD-left>修改表单的标签;
l 在<span id=”glowtext”>修改支付页面右边栏中的文字块
l 在<TD>处修改footer位置的内容,但是应该保留alipay的链接信息;
另外一些基本设置:
l 打开alipay_config.php文件
l 在$return_url=处修改完成支付后的跳转页面。你可能需要在根目录中手动新建一个类似complete-payment.html的页面让用户知道把钱交给你之后他应该做什么;
l 在$antiphishing=处设置是否开启防钓鱼功能。支付宝建议,开启前应和官方联系一下,一旦开启就无法关闭;
l 在$mainname= “收款方名称”;这行代码中,把收款方名称替换为你网站的名称。

wordpress基础到提高一

一 熟悉模版文件目录

style.css 样式表文件
index.php 主页文件
single.php 日志单页文件
page.php 页面文件
archvie.php 分类和日期存档页文件
searchform.php 搜索表单文件
search.php 搜索页面文件
comments.php 留言区域文件(包括留言列表和留言框)
404.php 404错误页面
header.php 网页头部文件
sidebar.php 网页侧边栏文件
footer.php 网页底部文件

二.一些基本的函数

header部分的
网站标题
日志或页面标题
WordPress主题样式表文件style.css的相对地址
WordPress博客的Pingback地址
WordPress主题文件的相对地址
博客的WordPress版本
WordPress博客的Atom地址
WordPress博客的RSS2地址
WordPress博客的绝对地址
WordPress博客的名称
网站的HTML版本
网站的字符编码格式

WordPress 主体模板部分的
日志内容
确认是否有日志
如果有,则显示全部日志
结束PHP函数”while”
结束PHP函数”if”
header.php文件的内容
sidebar.php文件的内容
footer.php文件的内容
显示格式为”02-19-08″的日期
显示一篇日志的留言链接
显示一篇日志或页面的标题
显示一篇日志或页面的永久链接/URL地址
显示一篇日志或页面的所属分类
显示一篇日志或页面的作者
显示一篇日志或页面的ID
显示一篇日志或页面的编辑链接
显示Blogroll中的链接
comments.php文件的内容
显示一份博客的页面列表
显示一份博客的分类列表
下一篇日志的URL地址
上一篇日志的URL地址

其它的一些WordPress模板代码补充
/%postname%/ 显示博客的自定义永久链接
搜索表单的值
打印输出信息
显示注册链接
显示登入/登出链接
在日志或页面中插入分页
截断日志
显示管理员的相关控制信息
显示载入页面的时间
显示载入页面查询

三 判断语句
is_single()

判断是否是具体文章的页面

is_single(’2′)

判断是否是具体文章(id=2)的页面

is_single(’Beef Stew’)

判断是否是具体文章(标题判断)的页面

is_single(’beef-stew’)

判断是否是具体文章(slug判断)的页面

comments_open()

是否留言开启

pings_open()

是否开启ping

is_page()

是否是页面

is_page(’42′)

id判断,即是否是id为42的页面

is_page(’About Me’)

判断标题

is_page(’about-me’)

slug判断

is_category()

是否是分类

is_category(’6′)

id判断,即是否是id为6的分类

is_category(’Cheeses’)

分类title判断

is_category(’cheeses’)

分类 slug判断

in_category(’5′)

判断当前的文章是否属于分类5

is_author()

将所有的作者的页面显示出来

is_author(’1337′)

显示author number为1337的页面

is_author(’Elite Hacker’)

通过昵称来显示当前作者的页面

is_author(’elite-hacker’)

下面是通过不同的判断实现以年、月、日、时间等方式来显示归档

is_date()

is_year()

is_month()

is_day()

is_time()

判断当前是否是归档页面

is_archive()

判断是否是搜索

is_search()

判断页面是否404

is_404()

判断是否翻页,比如你当前的blog是http://domain.com 显示http://domain.com?paged=2的时候,这个判断将返 回真,通过这个函数可以配合is_home来控制某些只能在首页显示的界面,

四wordpress调用网站统计大全
1、日志总数:

php $count_posts = wp_count_posts(); echo $published_posts = $count_posts->publish;

2、草稿数目:

php $count_posts = wp_count_posts(); echo $draft_posts = $count_posts->draft;

3、评论总数:

php echo $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->comments”);

4、成立时间:

php echo floor((time()-strtotime(“2008-8-18″))/86400);

5、标签总数:

php echo $count_tags = wp_count_terms(‘post_tag’);

6、页面总数:

php $count_pages = wp_count_posts(‘page’); echo $page_posts = $count_pages->publish;

7、分类总数:

php echo $count_categories = wp_count_terms(‘category’);

8、链接总数:

php $link = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = ‘Y’”); echo $link;

9、用户总数:

php $users = $wpdb->get_var(“SELECT COUNT(ID) FROM $wpdb->users”); echo $users;

10、最后更新:

php $last = $wpdb->get_results(“SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = ‘post’ OR post_type = ‘page’) AND (post_status = ‘publish’ OR post_status = ‘private’)”);$last = date(‘Y-n-j’, strtotime($last[0]->MAX_m));echo $last;

wordpress一些有用的插件及用法介绍

在用wordpress做项目的时候,经常会用到一些插件,wordpress流行的一个重要原因也就是插件丰富强大。

下面我将我做项目时用到的一些好用的插件及用法分享给大家,下次做项目时可直接拿来用,而不用去网上搜索了。

一.做滚动banner的插件

 比如,Smooth Slider,Promotion Slider,Easy Nivo Slider,WP Coda Slider 等等有很多这样的插件,不过这些插件在wordpress中都是共用的一个,如果页面的头部滚动banner是一样的,ok当然没有问题,但是如果客户要求每个页面的滚动banner不一样那要怎么办呢?

 请看这两个插件:vSlider Multi Image Slider for WordPress,M-vSlider

 vSlider Multi Image Slider for WordPress(vSider)插件的用法:

1.首先下载此插件然后安装。

2.登陆wordpress后台管理页面,找到安装插件后产生的新菜单,在里面根据选项建立一个或多个slider。

3.在静态页面中或是文章页面中插入[vslider name="abc"](其中name的值abc就是建立banner时的名称)或者也可以在php模板页面中加入代码“" (同样的"abc"还是建立banner时的名称。)

4.在前台页面中测试结果。

vSlider Multi Image Slider for WordPress 的用法就是这样。

M-vSlider 的用法

1.首先下载此插件然后安装。

2.登陆wordpress后台管理页面,找到安装插件后产生的新菜单,在里面根据选项建立一个或多个slider,还可以在这里面设置滚动banner的显示效果,比如,淡进淡出,往左滑动,往右滑动,往上滑动,往下滑动,还可以设置每个图片停留的时间 等等。

3.在静态页面中或是文章页面中插入[m-vslider id="x"](其中id的值"x"就是在后台管理banner列表中的id的名称)或者也可以在php模板页面中加入代码“" (同样的"x"还是后台管理banner列表中的id的名称。)

4.在前台页面中测试结果。

M-vSlider 的用法和上面的 vSlider Multi Image Slider for WordPress 差不多,我为什么还要介绍两种呢,并非多此一举。

对比,通过实际的操作你可以发现在vSlider插件中建立一个滚动banner时的图片是有限制的,这个限制数是20张,也就是一个slider最多允许上传20张图片,或许这个数果已经够了,如果要超过这个数量的图片怎么办呢,那就用M-vSlider这个插件,它对图片的数量是没有限制的,这就他们之间唯一的区别。

二.多语言插件

在用wordpress做项目时也常常要做几个语言,通常决方法就是用多个系统或是建多个分类,这样是可以实现多语言版本,但是过程还是复杂了一些,其实wordpress就有一个多语言版本插件,就是qtranslate这个插件。

qtranslate的用法介绍

1.在wordpress官网下载这个插件

2.登陆wordpress后台管理页面,安装此插件。

3.安装好之后,在后台管理菜单就会多出两个菜单,一个是中文,一个是英文。

4.在管理菜单中选择设置/语言会出现Language Management (qTranslate Configuration)管理页面,在General Settings下面/Default Language / Order 设置默认显示的语言,Hide Untranslated Content 是隐藏没有翻译的内容,这里保持默认即可,Detect Browser Language 这里保持默认即可,下面还有高级设置Advanced Settings 点击show展开显示,在Advanced Settings中有 URL Modification Mode(url的):Use Query Mode (?lang=en)就是通常用的url访问模式, Use Pre-Path Mode (Default, puts /en/ in front of URL) 用路径模式来显示,一般会选择这个,对于网站的seo会有帮助,看起来也更为干净,Use Pre-Domain Mode (uses http://en.yoursite.com)这种模式是以二级域名的方式来配置的。其中要注意的是,如果要用第二种模式服务器要支持mod_rewrite地址重写。后面的,Flag Image Path,Ignore Links,Update Gettext Databases,Date / Time Conversion,Reset qTranslate,Convert Database,Debugging Information,保持默认就可以了,不用更改。

5.然后可在静态页面(page)和文章页面发布内容了,根据要发布的语言版本,发布不同的内容即可。

6.在前台页面切换语言版本,如果设置的url访问模式是(?lang=en)直接在地址后面加(?lang=en)这个就可以了,如果是/en就在地址后面加上/en具体的语言版本字母可以在后台管理语言设置中查看,比如,中文是zh,查看方法,在Languages列表中选择你要查看的语言,点击右边的edit,进入Edit Language页面,

WordPress的缓存插件

缓存插件。缓存插件的用途一般来说有二,一是降低服务器的负载,不管是CPU占用率还是数据库查询次数,二是提高访客访问站点的速度。对于

WordPress这样的几乎没什么是静态的东西来说,使用一种或多种缓存插件可能是最简单的提升访问速度和降低负载的方法。

我们经常听到或用到的缓存插件有二,WP Super Cache和Hyper Cache,它们的功能都是将你的动态页面静态化,将经常调用的页面以静态的html文

件展示,而不是来一个访客“动态”生成一次页面。这种机制可以极大地降低服务器负载,特别是对于访问量很大的站点来说。这种缓存方式称之为

“全内容HTML缓存”。但是这种缓存方式有一个小问题,对于页面上“必须”动态生成或实时联络的内容而言(比如侧边栏的某些挂件),静态页面

意味着它们的功能失效。由此带来的问题是有些内容无法实时显示,广告无法显示等等。那有没有比较温柔的“无痛”缓存既能缓存一些内容降低负

载,又能够和这些插件和平共处没准还能让我们赚点小钱呢?Object Cache是个不错的选择,当然如果你喜欢插件形式的,BatCache也可以。

把它俩放到一起说的原因是这两个小东西都基于服务器的Memcache扩展,所以如果你想使用这种缓存机制,先咨询下你的服务商是否在服务器上启用

了它。有了Memcache这个前提,Object Cache那就是直接就用啊。

什么是Object Cache或对象缓存?它和一般生成静态HTML页面的缓存(比如WP Super Cache或Hyper Cache)有什么不同?

一般的缓存是将服务器生成的完整HTML响应进行存档,将之保存为静态的文件保存在硬盘上以供下次调用,一般来说这样的机制都会给静态文件

一个有效期,在特定时间或特定动作之后,当前缓存过期并重新生成。

Object Cache则是另一种形式的缓存。它只缓存那些服务器生成上面的响应过程中创建的“数据”或对象。举个例子来说,如果一个Blog的首页

有一个列表,比如最新的5个文章,友情链接,指向最新5个评论的链接等等; 服务器可以“单独”地以原始数据格式(raw data format)缓存它们

,所以在未来的调用请求中,这些内容可以被一个接一个地取回。

简单来说,一般的缓存是将生成的“结果”保存起来供下次相同请求时调用,而对象缓存是将生成过程中的零件们进行缓存,下次有相同请求时

无须现找零件而是即时拼装,所以也降低了服务器负载(特别是数据库请求次数)。

对象缓存比全内容HTML缓存要更灵活,因为它允许当缓存内容发生改变时,只使部分缓存时效。比如当一条新评论在你的博客上发表时,完全没

必要更新最新文章列表。另外,它还可以更容易地从以往请求内容的缓存数据中拼凑出新的请求,(比如,博客“单文章”页可能也包含最新评论列

表)。

所以你基本可以认为Object Cache是一个有条件的话一定必须肯定绝对要启用的东西,尽管它在WordPress 2.5及以上版本中没有默认开启,需要我

们自己往里面添加点内容启用它。据我自己的测试,它和任何其他的缓存插件,不管是Hyper Cache还是WP Super Cache还是DB Cache或是

Autoptimize都能够和平相处,所以,既然无痛而且确实有效,让我们都启用它吧。

原本Object Cache是WordPress内建的一个东西,但是由于种种原因在WP 2.5及以后版本中就取消了,或者说不再内建了。但是相关的API调用还在并

且都能正常工作,所以我们要做的就是用一个小文件启用它。

这个小程序全称File-Based Caching for WordPress,作者是Neosmart的Mahmoud H. Al-Qudsi,文件请访问这个页面下载。WOPUS之前的一篇文章也

对Object Cache做过简单的介绍。

使用方法很简单,上传object-cache.php文件到你的Wordpress的wp-content目录下(不是Plugins目录啊~),然后同样还在wp-content目录下

新建一个名为cache的文件夹并确保文件夹可写。然后,修改你的wp-config.php文件,在 define (‘WPLANG’, ‘zh_CN’); 这行后加上:

// Enable the WordPress Object Cache:
define(ENABLE_CACHE, true);

然后保存文件即可。

接下来你要做的就是多刷新几次你的博客,看看cache文件夹中是否多了些东西,那就是Object Cache的缓存文件了。另外,如果你留意你的数据库

查询次数和时间的话会发现,这两个值都有非常明显的下降,这表明你的Object Cache已经正常工作了。

BatCache和Object Cache类似,同样基于Memcache扩展,但是它是以插件的形式存在的,适用于那些由于各种原因无法使用WP Super Cache等常用缓

存插件的用户,大家可以到Wordpress的BatCache插件页查看。

Object Cache如果搭配另一个数据库插件DB Cache,数据库查询次数还会进一步降低。它几乎和所有的插件都能够和平共处。

产品分页和分类文章分页显示

产品分页和分类文章分页显示

用wordpress不管你是建立BLOG还是开发企业网站等,都要用到分页.分页可以用来美化网站,更可以提高网站的打开速度.以下是个人工作经验所得,跟大家分享,如果有什么好的意见,也希望大家分享,一起探讨.

一.   产品分页显示.

这里所说的产品分页是用到了一个电子商务插件wp-e-commerce.

下载wp-e-commerce插件,进入后台安装好,先添加相关的分类和产品.点击左边”设置->store”选择右边的Presentation 如下图:

拉到下面,找到Pagination settings,设置Use Pagination:为 yes; number of products to show per page为一页显示的产品个数; Page Number position:为你这个分类显示的位置.如下图:

二.   分类文章分页显示.

先下载一个WP-PageNavi分页导航插件安装好,并启用插件.

在相对就的PHP文件,或是自己模 PHP模板文件里加入以下调用分类文章的代码,如下:

<li><div class=”title”><a href=”” title=””></a></div></li>

这就调用好了分类文章,不过这样的显示还不行,这里还没有对文章进行分页,分页代码加在上面代码的下面,代码如下:

这样就对文章进行了分页,希望大家用得舒心.

wordpress产品分类名称显示

wordpress产品分类名称显示

用过wordpress的都应该知道wp-e-commerce这个插件,如果不知道的,现在就知道了.这是一个wordpress管理产品的插件,安装之后会有电子商务的功能,包括编辑产品分类,产品的添加包括(产品名称,图片,图片尺寸,描述,价格等等).当然也有很多的功能要设置.这里就讲用分类名称显示和分面显示.

  1. 进入wordpress后台,添加好产品分类和相对相的产品之后,点击”设置->store” 在右边选择” Presentation”如下图:

  1. 下拉右边栏目,找到Show list of categories将其设置为 yes.
  2. 找到Show Breadcrumbs:设置为yes .这个设置好以后如果你在产品分类栏添加分类图片时,前台的分类名称和图片会一起显示.如果你只想显示图片或分类,小弟改了一下程序,功能是在有分类图片时显示分类图片,没有分类图片时显示分类名称.找到文件wp-e-commercewpsc-includescategory.functions.php中的函数function wpsc_display_category_loop 拉到函数末将

$tags_to_replace = array(‘[wpsc_category_name]’,

‘[wpsc_category_description]’,

‘[wpsc_category_url]’,

‘[wpsc_category_id]’,

‘[wpsc_category_classes]’,

‘[wpsc_category_image]’,

‘[wpsc_subcategory]’,

‘[wpsc_category_products_count]’);

$content_to_place = array(

esc_html($category_row->name),

$category_description,

get_term_link($category_row->slug, ‘wpsc_product_category’),

$category_row->term_id,

$category_classes,

$category_image_html,

$sub_categories,

$category_count_html);

改成:

$tags_to_replace = array(‘[wpsc_category_name]’,

‘[wpsc_category_description]’,

‘[wpsc_category_url]’,

‘[wpsc_category_id]’,

‘[wpsc_category_classes]’,

‘[wpsc_category_image]’,

‘[wpsc_subcategory]’,

‘[wpsc_category_products_count]’);

if($category_image_html!=””)

{

$category_row->name=””;

}

$content_to_place = array(

esc_html($category_row->name),

$category_description,

get_term_link($category_row->slug, ‘wpsc_product_category’),

$category_row->term_id,

$category_classes,

$category_image_html,

$sub_categories,

$category_count_html);保存即可.还可以将分类的位置进行更改. 分类显示的代码在wp-e-commercewpsc-themewpsc-products_page.php 代码如下:

<div class=”wpsc_categories wpsc_category_grid group”>

<a href=”” title=””>

</a>

</div><!–close wpsc_categories–>

<ul class=”wpsc_categories”>

<li class=”fed_category”>

<a href=”” class=”fed_category_link ” title=””></a>

</li>

</ul>

wordpress数据库操作类wpdb相关注释说明

以下相关代码注释可能不全面,有不对的地方,仅做参考;

wp项目setting文件部分代码解析

刚接触wp,以下内容的注解可能会有不到位的地方,仅作参考:

define( ‘WPINC’, ‘wp-includes’ );//定义include文件夹目录

// Include files required for initialization.
require( ABSPATH . WPINC . ‘/load.php’ );//加载常用函数文件
require( ABSPATH . WPINC . ‘/default-constants.php’ );
require( ABSPATH . WPINC . ‘/version.php’ );//版本参数信息文件

// Set initial default constants including WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR and WP_CACHE.
wp_initial_constants( );//初始化常量信息

// Check for the required PHP version and for the MySQL extension or a database drop-in.
wp_check_php_mysql_versions();//检查php、mysql的版本信息和扩展是否符合,不符合打印提示信息

// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php.
set_magic_quotes_runtime( 0 );//不设置自动转义
@ini_set( ‘magic_quotes_sybase’, 0 );//设置magic_quotes_sybase变量为0

// Set default timezone in PHP 5.
if ( function_exists( ‘date_default_timezone_set’ ) )
 date_default_timezone_set( ‘PRC’ );

// Turn register_globals off.
wp_unregister_GLOBALS();//注销全局变量信息

// Ensure these global variables do not exist so they do not interfere with WordPress.
unset( $wp_filter, $cache_lastcommentmodified );//注销变量

// Standardize $_SERVER variables across setups.
wp_fix_server_vars();//设置服务器变量$_SERVER[‘REQUEST_URI’]、$_SERVER[‘PHP_SELF’]

// Check if we have received a request due to missing favicon.ico
wp_favicon_request();//

// Check if we’re in maintenance mode.
wp_maintenance();//判断网站是否在维护状态,是就输出正在维护中的提示信息

// Start loading timer.
timer_start();//记时开始

// Check if we’re in WP_DEBUG mode.
wp_debug_mode();//是否在调试模式

// For an advanced caching plugin to use. Uses a static drop-in because you would only want one.
if ( WP_CACHE )
 WP_DEBUG ? include( WP_CONTENT_DIR . ‘/advanced-cache.php’ ) : @include( WP_CONTENT_DIR . ‘/advanced-cache.php’ );

// Define WP_LANG_DIR if not set.
wp_set_lang_dir();//设置语言包路径

// Load early WordPress files.
require( ABSPATH . WPINC . ‘/compat.php’ );//php版本不同确认函数兼容,没有则重写函数
require( ABSPATH . WPINC . ‘/functions.php’ );//函数库
require( ABSPATH . WPINC . ‘/class-wp.php’ );//类库
require( ABSPATH . WPINC . ‘/class-wp-error.php’ );//错误信息类
require( ABSPATH . WPINC . ‘/plugin.php’ );//插件函数

// Include the wpdb class and, if present, a db.php database drop-in.
require_wp_db();//数据库连接

// Set the database table prefix and the format specifiers for database table columns.
wp_set_wpdb_vars();//数据库信息检查和设置

// Start the WordPress object cache, or an external object cache if the drop-in is present.
wp_start_object_cache();//开始使用对象缓存,或外部对象如果在目前缓存

// Load early WordPress files.
require( ABSPATH . WPINC . ‘/default-filters.php’ );
require( ABSPATH . WPINC . ‘/pomo/mo.php’ );

// Initialize multisite if enabled.是否是多站
if ( is_multisite() ) {
 require( ABSPATH . WPINC . ‘/ms-blogs.php’ );
 require( ABSPATH . WPINC . ‘/ms-settings.php’ );
} elseif ( ! defined( ‘MULTISITE’ ) ) {
 define( ‘MULTISITE’, false );
}

如何跟踪统计博客人气

如何跟踪统计博客人气

blog plus

如果你是一个博客网站的站长,而且是用 WprdPress 来搭建的,那么你一定希望自己的博客能有很高的人气,这样 才能到来更多的访问者和订阅量。

WprdPress 有个插件可以帮助站长们实现这个愿望,你只需要在WprdPress 后台安装一个WP-PostViews Plus插件就能轻松实现。

在WprdPress 安装WP-PostViews Plus还有一个好处就是,插件可以区分出哪些是真正的访客点选了文章、哪些是机器人(蜘蛛人)点选了文章。下面就简单介绍这款插件的使用以及配置:

在启用插件后,可以选择多个函数运用,基本的有三种,一种为the_views(‘Views’, true):该篇文章的总浏览数。一种为the_user_views(‘User Views’, true):该篇文章的真实访问者浏览数。一种是the_bot_views(‘Bot Views’, true):该篇文章的机器人(蜘蛛人)浏览量。在这四种函数中,Views, User Views, Bot Views都是指加在后面的说明文字,而true是指选择直接输出true还是回传数据false。

WP-PostViews Plus其实在后台也有配置菜单,点击“配置”后,选择“PostViews +”链接,在这个配置页面,会有更加细致的配置来计算博客的浏览量。

通过跟踪博客人气,站长们可以知道哪些类型的博客是网友们喜欢点击查阅的,这有助于改进写作方向和选材。