Archive for the ‘WordPress’ Category

WordPress 模板文件详解

Posted on 01月 6th, 2010 in WordPress | 1 Comment »

WordPress 模板是由很多WordPress 的模板文件组成的,wordpress 里面有很多php 文件,但是你使用了就会发现文件很简单,只要把wordpress 的一般格局和功能搞清楚了,文件你也就知道个差不多了。

wordpress 的格局其实就像在做网页的时候一样,分为几个大类:
1. 头部文件:header.php
2. 主体内容部分: index.php
3. 页面文件:page.php
4. 单篇日志页面:single.php
5. 边栏文件:sidebar.php
6. 页脚文件:footer.php
index.php\page.php\single.php 是主体文件,里面包含着header.php、sidebar.php、以及footer.php
主体部分文件由于所在页面不同,会导入不同的页面文件,一般情况下index.php是首页文件。
上面的是按照格局所得出的一些wordpress 文件,还有按照功能得到的一些文件:
1. 404 错误:404.php
2. 文章存档:archives.php
3. 评论功能: comments.php
4. 自定义功能:functions.php
5. 搜索结果页面:search.php
6. 搜索表单:searchform.php
这些文件齐了以后,在加上css 样式文件style.css 以及图片文件夹images,博客也就有了大致的雏形了。

WordPress时间函数详解

Posted on 01月 5th, 2010 in WordPress | No Comments »

WordPress在使用的过程中,经常会用到时间函数,特别是在修改主题的时候,下面就给大家详细介绍一下WordPress时间函数。

<?php the_time(‘F jS, Y’) ?>:日志发表的日期 格式:月日年,时间的格式有很多种,写在下面,供参考
年-月-日
(1)表示年可以用大写的Y 和小写y;(大写Y 表示年四位数字,而小写y 表示年的两位数字)
(2)表示月可以用大写F、大写M、小写m 和小写n( 小写m 表示月份的数字(带前导),而小写n 则表示不带前导的月份数字。 大写M 表示月份的3 个缩写字符,而小写m 则表示月份的数字(带前导0);大写M 表示月份的3 个缩写字符,而大写F 表示月份的英文全写)
(3)表示日可以用小写d 和小写j,大写S 表示日期的后缀。(没有大写的J,只有小写j 表示月份的日期,无前导o;若需要月份带前导则使用小写d;大写S 表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何)

时:分:秒
(1)i 表示分,s 表示秒
(2)小写g 表示12 小时制,无前导0,而小写h 则表示有前导0 的12 小时制。
(3)当使用12 小时制时需要表明上下午,小写a 表示小写的“am”和“pm”,大写A 表示大写的“AM”和“PM”。
(4)大写G 表示24 小时制的小时数,但是不带前导的;使用大写的H 表示带前导的24 小时制小时数
注:默认情况下,PHP 解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8 个小时。

WordPress预定发表日志时出现Missed Schedule错误的解决方法

Posted on 01月 4th, 2010 in WordPress | 2 Comments »

摇钱树博客使用的就是WordPress程序,WordPress有一个非常好的功能,就是预定发表日志,有了这个功能,你就可以一天写好几篇日志,然后让其慢慢发表出来。可是,在本博客升级成WordPress2.9版本后,当使用预定发表日志时,却出现了Missed Schedule错误。在网络上找了好久,终于,找到了解决方法。

其实,解决WordPress预定发表日志时出现Missed Schedule错误的方法其实很简单,就是下载安装一个Scheduled插件,WordPress插件如何安装,就不用我多说了吧。这个插件是由5ubliminal开发的,可是,不知道什么原因,原作者的下载页面已经打不开了,大家可以直接将下面这段代码另存为Scheduled.php文件。

<?php
/*
Plugin Name: Scheduled M.I.A.s
*/
// —————————————————————————–
define(‘PLUGIN_SCHEDULEDMIAS_DELAY’, 15); // Minutes .. change as you wish
define(‘PLUGIN_SCHEDULEDMIAS_OPTION’, ‘_5ub_scheduled_mias’); // Option name
// —————————————————————————–
function _5ubliminal_Replacements_Deactivate(){
    // Drop last update time on deactivate
    delete_option(PLUGIN_SCHEDULEDMIAS_OPTION);
}
register_deactivation_hook(__FILE__, ‘_5ubliminal_Replacements_Deactivate’);
// —————————————————————————–
function _5ubliminal_ScheduledMIAs_Init(){
    // I disable internal cron jobs for post publishing completely
    // … Comment the line below to let Wordpress try do its job before we kick in
    remove_action(‘publish_future_post’, ‘check_and_publish_future_post’);
    // Let’s see if enough time passed from last publish
    $last = get_option(PLUGIN_SCHEDULEDMIAS_OPTION, false);
    if(($last !== false) && ($last > (time() – (PLUGIN_SCHEDULEDMIAS_DELAY * 60))))
        return; // Too little time passed, bail here
    // Update to the current time
    update_option(PLUGIN_SCHEDULEDMIAS_OPTION, time());
    // Global $wpdb object
    global $wpdb;
    // Find MIA post_IDs, try both LOCAL datetime and GMT datetime
    $scheduledIDs = $wpdb->get_col(
        “SELECT `ID` FROM `{$wpdb->posts}` “.
        “WHERE ( “.
        “    ((`post_date` > 0 )&& (`post_date` <= CURRENT_TIMESTAMP())) OR “.
        “    ((`post_date_gmt` > 0) && (`post_date_gmt` <= UTC_TIMESTAMP())) “.
        “) AND `post_status` = ‘future’”
    );
    if(!count($scheduledIDs)) return; // None found … bail
    foreach($scheduledIDs as $scheduledID){
        if(!$scheduledID) continue; // Just in case
        // Publish each post_ID the Wordpress friendly way
        wp_publish_post($scheduledID);
    }
}
add_action(‘init’, ‘_5ubliminal_ScheduledMIAs_Init’, 0); // 0 Priority filter
// —————————————————————————–
?>

WordPress分类(archives)函数大全

Posted on 01月 3rd, 2010 in WordPress | No Comments »

WordPress中archives.php分类页面就是index.php 文件的 <?php if (have_posts()) : ?><?php while
(have_posts()) : the_post(); ?>中间添加一段分类的代码,下面列出了根据不同参数返回分类列表的wordpress分类函数大全:
<?php if (have_posts()) : ?>
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php /* If this is a category archive */ if (is_category()) { ?>
<h2 class=”pagetitle”>Archive for the &#8216;<?php
single_cat_title(); ?>&#8217; Category</h2>(根据cate 分类)
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h2 class=”pagetitle”>Posts Tagged &#8216;<?php
single_tag_title(); ?>&#8217;</h2>(根据tag 分类)
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘F jS, Y’); ?></h2>
(根据day 分类)
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘F, Y’); ?></h2>(根
据month 分类)
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘Y’); ?></h2>(根据
year 分类)
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
<h2 class=”pagetitle”>Author Archive</h2>(根据author 分类)

<?php /* If this is a paged archive */ } elseif (isset($_GET['paged'])
&& !empty($_GET['paged'])) { ?>
<h2 class=”pagetitle”>Blog Archives</h2>(根据page 分类)
<?php } ?>
<?php while (have_posts()) : the_post(); ?>

教你如何自定义wordpress sidebar侧边栏文件

Posted on 01月 2nd, 2010 in WordPress | No Comments »

WordPress安装好后,我们一般都会换掉WordPress自带的默认主题模板,在我们安装其他WordPress Theme(主题)时,往往经常要改动其sidebar侧边栏文件,如果你对WordPress不是很熟悉的话,要改这个文件还是很麻烦的,没关系,今天,我们就来探讨一下如何自定义wordpress sidebar侧边栏文件。

下面这个文件就是一个非常典型的wordpress sidebar侧边栏文件。

<div id=”sidebar”>
<ul>
<?php if ( !function_exists(‘dynamic_sidebar’)
|| !dynamic_sidebar() ) : ?>(当检测到当前的WordPress 是支持动态侧边栏
时,则边栏 )
<li id=”pages”>
<h2>
<?php _e(‘pages’);?>
</h2>
<ul>
<?php wp_list_pages(’sort_column=menu_order&depth=1&title_li=’); ?>
</ul>
</li>
<li id=”meta”>
<h2>
<?php _e(‘Meta’); ?>
</h2>
<ul>
<?php wp_register(); ?>
<li>
<?php wp_loginout(); ?>
</li>
<?php wp_meta(); ?>
</ul>
</li>
<?php endif; ?>(if 判断结束)
</ul></div>

要搞懂上面的这个wordpress sidebar侧边栏文件,就必须先了解文件中所使用的wordpress函数。wordpress sidebar侧边栏文件,sidebar.php 经常会运用到的函数如下:
<?php wp_register();?>:显示注或网站管理链接
用法:<?php wp_register ( ‘before’ , ‘after’ ); ?>
before:(字符串)默认为<li>
after:(字符串)默认为</li>

<?php wp_loginout();?>:显示登录/注销链接(无参数)
<?php wp_meta():?>:显示自定义字段,不过貌似从来没用上
<?php wp_get_archives(‘type=monthly’);?>:按月显示内容存档
用法:<?php wp_get_archives(‘type= ‘&’limit= ‘&’format=
‘&’before=’&’after=’&’show_post_count=’)
参数及值:
type :(字符串)显示档案的方法
yearly :年
monthly (默认) :月
daily :日
weekly :周
limit :(字符串)显示文章数目的限制,默认情况下无限制
format:(字符串)文档清单的格式
html:添加HTML 列表( <li> )标签(默认)
option:添加选择( <select> )或下拉式选项( <option> )标记
link:添加链接(<link>)标记
custom:自定义列表使用之前和之后的字符串。
before:(字符串)当有format 标记时用在format 前面
after:(字符串)当有format 标记时用在format 后面

show_post_count:(布尔)是否显示文档里面日志的数目,
1 显示0 不显示(默认)
<?php wp_tag_cloud(”):?>:显示tag 标签
用法:
<?php wp_tag_cloud(’smallest=,
largest=,unit=,number=,format=,orderby=name,order=ASC,exclude=,includ
e=’); ?>
参数:
smallest :( 整数 )文字的最小尺寸(unit 给予单位)
largest:( 整数 )文字的最大尺寸(unit 给予加单位)
unit :( 字符串 )给smallest 和largesti 添加的单位
number:( 整数 )显示的tag 的数目
format :( 字符串 )标签云显示的格式
值:
flat:由空格分开(默认)
list:以有序列表排列
array:标签被放在一个数组里面,并且函数将标签云返回为一个数组供php
调用。注意:数组是返回,而不显示
orderby:( 字符串 )标签的排列的顺序
值:
name:名字(默认)
count:数字
order :( 字符串 )排序的次序(要大写才有效)
值:
ASC:升序(默认)
DESC:降序
RAND:随机
exclude:( 字符串 )排除某个特定的标签

include:( 字符串 )只包含某个特定的标签
<?php $myposts=get_posts(‘numberposts=10$offset=1′);foreach($myposts
as $post):?><li><a href=”<?php the_permalink();?>”><?php
the_title();?></a></li><?php endforeach;?>:显示从第一篇开始取10 篇日
志的列表
<?php get_posts(‘ ‘); ?>:得到日志的信息
用法:<?php get_posts(‘numberposts=, offset=, category=, category_name=,
tag=, orderby= ,……’); ?>
参数及值:
numberposts:( 整数 )返回日志的数目,默认值:5
offset:( 整数 )最新文章的起始点,默认值:0
category:( 整数 )只显示这一类别的文章(根据ID),默认值:无
category_name:( 字符串 )只显示这一类别的文章(根据名称或缩写),默
认值:无
tag:( 字符串 )只显示这一标签的文章,若有多个标签,用逗号隔开,则一
个不显示,应用空格隔开
orderby:( 字符串 )文章的排列顺序(默认:post_date)
值:
author:作者 id
category:分类 id
content:内容 id
date:日期 id
ID:文章本身的 id
menu_order:按菜单命令(只应用于网页 page)
mime_type:按 MIME 类型(只应用于带附件的)
modified:最后修改的日期
name:按缩略名
parent:按父文章的 id
password:按密码
rand:随机
status:按状态
title:按标题
type:按类型

      order:( 字符串 )排序的次序(要大写才有效)
值:
ASC:升序
DESC:降序(默认)
include:( 字符串 )显示拥有某些ID 的文章,多个以逗号、/、空格隔开,
默认值:无
exclude:( 字符串 )排除拥有某些ID 的文章,多个以逗号、/、空格隔开,
默认值:无
meta_key 和meta_value:( 字符串 )只显示那些有特定键值对的自定义域,
(如果要用的话,两个值一起),默认值:无
post_type:( 字符串 )文章的类型
值:
post(默认)
page
attachment
any
post_status:( 字符串 )查看文章的特殊状态
值:
publish(默认)
private
draft
future
inherit
post_parent:( 整数 )只显示这个拥有这个id 的文章的子文章,默认值:无
nopaging:( 布尔 )启用或禁用分页,默认值:无
<?php
wp_list_categories(’sort_column=&optioncount=&hierarchical=&……’);?
>:按照字符顺序显示分类列表

参数:
show_option_all :( 字符串 )当style 设置为list 的时候,会有一个值来
显示到所有分类的链接,默认是不显示所有链接
orderby:( 字符串 )排序的依据,默认值:name
值:
ID
name(默认)
count
order:ASC(升序)或DESC(降序)
show_last_update:是(真)否(假)显示最后修改时间,1 为真,0(默认)
为假
style:( 字符串 )显示分类的方式,值:list(默认);none
show_count:( 布尔 )是(真)否(假)显示日志的数目,1 为真,0(默认)
为假
hide_empty:( 布尔 )是(真)否(假)隐藏无日志的分类,1(默认)为真,
0 为假
use_desc_for_title:( 布尔 )是(真)否(假)给标题设置分类信息,1(默
认)为真,0 为假
child_of:( 整数 )只显示这个分类的子分类,没有默认值
exclude:除了
include:只包括
hierarchical:( 布尔 )是(真)否(假)让子分类显示时缩进,1(默认)
为真,0 为假
number:( 整数 )设置显示的数目,默认无限制
echo:( 布尔 )得到的结果是(真)否(假)存在一个变量中,1(默认)为
真,0 为假
depth: ( 整数 )显示分类的深度,0(默认)为无限制

<?php
wp_list_bookmarks(‘categorize=&title_after=&title_before=&……’);?>:
显示友情链接
<?php wp_list_pages(’sort_column=menu_order&depth=3&title_li=’); ?>:
显示深度到3 的页面链接
<?php include(TEMPLATEPATH. ‘/searchform.php’); ?>:调用searchform
的文件生成搜索栏
<?php get_calendar(); ?>:调用wordpress 自带的日历

安装Wordpress 百度新闻(Baidu Sitemap)插件出错

Posted on 12月 30th, 2009 in SEO, WordPress | No Comments »

摇钱树博客很早就被百度给瞄上了,一直以来都只是收录了首页,前不久才收录了两个页面,本想下载安装个Wordpress 百度新闻(Baidu Sitemap)插件的,哪知道,不安装还好,一安装后,居然导致数据库链接错误!!!也罢,百度,你爱怎么着就这么着吧,偶也不打算讨好你了。

新型垃圾评论出现,Wordpress Akismet 插件无能为力

Posted on 03月 25th, 2008 in WordPress | 6 Comments »

摇钱树博客自从安装了Wordpress Akismet 反垃圾评论插件后,已经拦截了140多条垃圾评论了,确实让我省了不少心。可是最近,出现了一种新形式的垃圾评论,而Akismet好像对此无能为力。我们知道,平时的垃圾评论都是有一些英文句子,和大量的链接组成,可是这种垃圾评论除了这些东西,还在评论的后面会直接提取网页的标题加在后面,让Akismet无法识别,如下图.

comments

后台拦截的垃圾评论都是英文的,一旦垃圾评论中出现中文字符,估计Akismet就无法识别了,毕竟是老外开发的插件,不是很适合中国国情啊。看来要找个专门针对中文垃圾评论的插件了。

如何设置 WordPress 的 Ping 服务功能

Posted on 03月 9th, 2008 in WordPress | 7 Comments »

更新网站,然后等待搜索引擎来收录,这种被动式的方法现在已经过时了。现在很多博客系统都加入了Ping 服务功能,所谓Ping 服务,实际上是一种更新通知服务,它可以将您的博客更新自动通知博客目录和搜索引擎,加快网站被搜索引擎收录的速度。比如,平时你更新了一篇文章,Google可能要等到第二天才会收录,可是如果你用了Ping服务的话,这个时间会大大的缩短,也许只要几十分钟。WordPress作为一个优秀的博客系统,当然也有Ping 服务功能。今天我们就来具体说说如何设置 WordPress 的 Ping 服务功能。

WordPress用户可以通过选项(Options)——撰写(Writing)——更新通知(Update Services)修改Ping清单,如下图所示:

ping

你只需要将各大博客目录和搜索引擎的Ping 服务地址复制到更新通知(Update Services)里,然后“更新设置”即可,就这么简单。但是要注意到是,太多的ping地址会延缓文章的发布速度,所以,大家也不要看这个功能好就一股脑的拼命往里面加Ping服务地址。下面是摇钱树博客收集的一些常用的Ping 服务地址,大家可以参考一下。

http://rpc.pingomatic.com/
http://blogsearch.google.com/ping/RPC2
http://api.my.yahoo.com/RPC2
http://api.my.yahoo.com/rss/ping
http://ping.feedburner.com
http://rpc.technorati.com/rpc/ping
http://www.blogshares.com/rpc.php
http://www.blogsnow.com/ping
http://www.snipsnap.org/RPC2
http://www.weblogues.com/RPC/
http://xmlrpc.blogg.de
http://xping.pubsub.com/ping/
http://www.zhuaxia.com/rpc/server.php
http://www.blogsdominicanos.com/ping/
http://www.xianguo.com/xmlrpc/ping.php
http://www.feedsky.com/api/RPC2
http://rpc.icerocket.com:10080/
http://blog.iask.com/RPC2
http://ping.blog.qikoo.com/rpc2.php

鲜果推荐按钮WordPress插件

Posted on 03月 3rd, 2008 in WordPress, 互联网 | 2 Comments »

好久没有去关注鲜果了,今天无意间发现鲜果推荐按钮推出了WordPress插件。新东西当然要试一下了,呵呵。

1、下载插件,解压到/wp-content/plugins/目录下.

2、进入WordPress管理后台,点击主菜单“插件”,找到“鲜果推荐按钮”点击“启用”,这样就默认把鲜果推荐按钮放到你每篇文章的底部了.

3、设置按钮属性:在启用插件后,可点主菜单“选项/设置”->副菜单“鲜果推荐按钮”,对按钮属性(样式、位置等)进行修改,最后点“更新选项”按钮完成设置.

看看现在每篇文章下面都多了一个鲜果推荐按钮,如果文章写的还过得去的话,希望大家多多推荐啊。

PJBlog转WordPress的几种方法

Posted on 12月 26th, 2007 in WordPress | No Comments »

前几天刚好有个基于PJBlog的博客要换成WordPress,就在网上找了一下关于PJBlog转WordPress的方法。大致有如下几种:

1. 通过RSS导入

WordPress支持RSS格式数据的导入,而PJBlog又支持RSS数据的输出,一切就这么简单,不需要任何额外的代码就可以搞定。这种方式最大的缺点就是不能支持留言的导入。如果有这方面的需求,可能要麻烦很多,因为pjblog本身也不支持留言的RSS。

还是有个地方要做小小的改动,因为PJBlog的RSS默认只输出10篇,而我们要导出的是全部文章,只好在feed.asp文件里改了。

找到SQL=”SELECT TOP 10 L.log_ID,L.log_Title,去掉里面的TOP 10。变成这样的SQL=”SELECT L.log_ID,L.log_Title有两个地方,挨的还比较近。然后打开浏览器,敲http://www.你的网址.com/feed.asp。如果文章比较多,时间会长一点。最终显示成一个格式化好的xml文本。然后在浏览器菜单里找文件保存,存成一个feed.asp.xml就行了。最后进入wordpress的控制面板,选择“选项“,顶端菜单最后一项的“导入”。然后选择RSS。会让你选择一个本机上文件,就是前面那个xml。点确定导入就行了。

2. 网友Wady写的一个LBS 以及 PJBlog 到 WordPress 的新版数据转换程序

该方法比较全面,可以将评论和留言一并转换,我就是用这个方法将我的PJBlog里的数据要换成WordPress的。

使用方法如下:

  1. 将 LBS 或 PJBlog 的数据库改名为 blog.mdb
  2. 将 asp2wp.asp 以及 blog.mdb 上传到同一 ASP 空间目录下
  3. 运行程序根据需求点击相应的按钮获取 xml 格式的导出数据
  4. 进入已安装好的 WordPress 后台依次打开“管理”->“导入”->“WordPress”,根据提示导入之前获取的 xml 格式数据文件

提示:如果数据文件比较大,可以使用压缩包内所提供的 XML 分割软件分割成多个小尺寸数据文件依次导入。

LBS 以及 PJBlog 到 WordPress 的新版数据转换程序下载地址:点击下载

另外还找到了几种PJBlog转WordPress的方法,不过个人觉得都不如这两种方法来的简单。反正不管是什么方法,只要能够成功的帮我们把PJBlog转到WordPress就可以了。