set_transient(), get_transient(), delete_transient()
这个函数类似于用于存储检索选项数据库表单的get_options()以及update_options()函数。 他们的主要区别在于,你可以给这个临时API函数传递一个时间参数,作为数据库输入的过期日。当参数显示的时间到达之后,输入会被移除。如果你需要缓存数据或查询某个短期时间内的结果,这会是个相当有用的函数。

set_transient的参数:

set_transient($transient, $value, $expiration);
将某个值保留在数据库中一小时:

set_transient('the_name', $special_query_results, 60*60);
结果值:

$value = get_transient('the_name');
WordPress “定时任务”函数

wp_schedule_event(time(), 'hourly', 'my_schedule_hook');
如果你需要定时执行某段代码,像是检查RSS订阅、数据库备份或是重设数据库值等,就可以用到这个函数。

WordPress HTTP API

wp_remote_get( $url, $args = array() );
这是个用于检索网页内容的简单函数。函数把检索结果存储在一个数组里。你不仅可以得到网页的结果内容,还可以获取网页的页头信息和相应代码。

轻松获取RSS 订阅

$feed = fetch_feed( $uri );
fetch_feed是一个用来获取订阅内容的简单WordPress函数。这个函数可以检索、分析并自动缓存订阅内容。

WordPress邮件函数

wp_mail()  wp_mail( $to, $subject, $message, $headers, $attachments );
示例:

Example:   
$to = 'Example@Example.com'; 
$subject = 'Hello!'; 
$message = 'This message was sent by wordpress'   
$mail = wp_mail($to, $subject, $message);   
if($mail) echo 'Mail delivered';
相当简单实用的函数,利用这个函数你可以发送页头信息和附件、普通文本、HTML信息以及其他各种选项。

计时函数

human_time_diff( $from, $to )
这个函数显示出的时间效果不是普通的时间格式,而是“XXX发布于XXX小时前”这样。

WordPress get_comments函数

get_comments()
在评论循环外检索评论内容。

字符串验证

wp_kses($string, $allowed_html, $allowed_protocols);
如果你需要过滤不受信任的用户输入内容,wp_kses会是个很实用的函数。这个函数确保$string中只出现经许可的HTML元素名称、属性和属性值以及正常的HTML实体。

WordPress文本转换

wptexturize()
这个函数把常用的字符串转换成印刷时采用的正确符号,比如破折号、省略号等,有时也会为某些段落加上排版引号。

wpautop()
给字符串添加<p>标签

WordPress短码API

add_shortcode(), do_shortcode()
add_shortcode()可以快速为你的日志内容创建宏。假设你希望把日志里的某些内容包围在一个div块里,并且加上若干类和id,让你可以创建多个内容栏。你可以用HTML编辑器进行编辑,然后输入下面的内容:

<div class='one_third'>内容</div>
用PHP函数生成WordPress日志wp_insert_post() 这个函数在数据库中插入文章页面和自定义文章类型。它会过滤变量并执行检查,补充日期/时间等缺失变量。如果用户可以通过你的网站前台提交内容,这个函数会相当有帮助。

用PHP函数生成WordPress评论

wp_insert_comment()
和wp_insert_posts类似,不过wp_insert_comment插入的是评论。

WordPress对象缓存

wp_cache_add(),  wp_cache_set(),  wp_cache_get(),  wp_cache_delete, wp_cache_replace(), wp_cache_flush
WP_Object_Cache是WordPress中用以缓存数据的类。

禁止执行WordPress任务

wp_die()
wp_die终止WordPress运行,显示HTML错误信息。

这个函数与PHP函数die()互为补充。HTML信息显示给用户。推荐仅在进程不能再继续时才使用该函数。

分类: 网页设计 标签: 日期:2010-10-20

很多网站都想开放读者的投稿功能,接受读者的投稿,不仅可以丰富博客的内容,还可以增加与读者之间的沟通,可以说是一举多得的事情,何乐不为呢?WordPress本身并不提供投稿功能,但是WordPress拥有强大的扩展能力,我们可以自己来添加这个功能。

实现用户投稿,有两种方法,一种是开放后台的注册功能,普通用户注册进去默认为投稿者,登陆进去即可添加文章(默认为草稿);另一种方法是在前台提供投稿表单,用户填写相应的表格即可。前一种方法实现起来比较简单,基本不需要博主配置太多东西,只是有些博主可能会觉得别扭,不愿让他人看到自己的博客后台;而后一种方法对投稿者来说方便了很多,博主也不用担心自己博客的后台隐私,只是该方法实现起来比较麻烦,需要配置的东西很多。本文也只将介绍后一种方法,希望对你有所帮助。

一、添加投稿表单

1、首先在当前主题的目录下新建一个php文件,命名为tougao-page.php,然后将page.php中的所有代码复制到tougao-page.php中;

2、删除tougao-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;

3、将 <?php the_content(); ?> 改成以下代码:

<?php the_content(); ?>

<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
    <div style="text-align: left; padding-top: 10px;">
        <label>昵称:*</label>
    </div>
    <div>
        <input type="text" size="40" value="" name="tougao_authorname" />
    </div>

    <div style="text-align: left; padding-top: 10px;">
        <label>E-Mail:*</label>
    </div>
    <div>
        <input type="text" size="40" value="" name="tougao_authoremail" />
    </div>
                   
    <div style="text-align: left; padding-top: 10px;">
        <label>您的博客:</label>
    </div>
    <div>
        <input type="text" size="40" value="" name="tougao_authorblog" />
    </div>
                   
    <div style="text-align: left; padding-top: 10px;">
        <label>文章标题:*</label>
    </div>
    <div>
        <input type="text" size="40" value="" name="tougao_title" />
    </div>

    <div style="text-align: left; padding-top: 10px;">
        <label>分类:*</label>
    </div>
    <div style="text-align: left;">
        <?php wp_dropdown_categories('show_count=1&hierarchical=1'); ?>
    </div>
                   
    <div style="text-align: left; padding-top: 10px;">
        <label>文章内容:*</label>
    </div>
    <div>
        <textarea rows="15" cols="55" name="tougao_content"></textarea>
    </div>
                   
    <br clear="all">
    <div style="text-align: center; padding-top: 10px;">
        <input type="hidden" value="send" name="tougao_form" />
        <input type="submit" value="提交" />
        <input type="reset" value="重填" />
    </div>
</form>

二、添加表单处理代码

在tougao-page.php中,将第一个 <?php 改成:

<?php
   
if( isset($_POST['tougao_form']) && $_POST['tougao_form'] == 'send')
{
    if ( isset($_COOKIE["tougao"]) && ( time() - $_COOKIE["tougao"] ) < 120 )
    {
        wp_die('您投稿也太勤快了吧,先歇会儿!');
    }
       
    // 表单变量初始化
    $name = isset( $_POST['tougao_authorname'] ) ? trim(htmlspecialchars($_POST['tougao_authorname'], ENT_QUOTES)) : '';
    $email =  isset( $_POST['tougao_authoremail'] ) ? trim(htmlspecialchars($_POST['tougao_authoremail'], ENT_QUOTES)) : '';
    $blog =  isset( $_POST['tougao_authorblog'] ) ? trim(htmlspecialchars($_POST['tougao_authorblog'], ENT_QUOTES)) : '';
    $title =  isset( $_POST['tougao_title'] ) ? trim(htmlspecialchars($_POST['tougao_title'], ENT_QUOTES)) : '';
    $category =  isset( $_POST['cat'] ) ? (int)$_POST['cat'] : 0;
    $content =  isset( $_POST['tougao_content'] ) ? trim(htmlspecialchars($_POST['tougao_content'], ENT_QUOTES)) : '';
   
    // 表单项数据验证
    if ( empty($name) || strlen($name) > 20 )
    {
        wp_die('昵称必须填写,且长度不得超过20字');
    }
   
    if ( empty($email) || strlen($email) > 60 || !preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $email))
    {
        wp_die('Email必须填写,且长度不得超过60字,必须符合Email格式');
    }
   
    if ( empty($title) || strlen($title) > 100 )
    {
        wp_die('标题必须填写,且长度不得超过100字');
    }
   
    if ( empty($content) || strlen($content) > 3000 || strlen($content) < 100)
    {
        wp_die('内容必须填写,且长度不得超过3000字,不得少于100字');
    }
   
    $post_content = '昵称: '.$name.'<br />Email: '.$email.'<br />blog: '.$blog.'<br />内容:'.$content;
 
    $tougao = array(
        'post_title' => $title,
        'post_content' => $post_content,
        'post_category' => array($category)
    );
    // 将文章插入数据库
    $status = wp_insert_post( $tougao );
 
    if ($status != 0)
    {
        setcookie("tougao", time(), time()+180);
        wp_die('投稿成功!感谢投稿!');
    }
    else
    {
        wp_die('投稿失败!');
    }
}
代码补充说明,如果你想让让投稿的文章立即发布,而不需要审核再编辑,那么请将以上代码45行改成:

'post_content' => $post_content, 'post_status' => 'publish',
最后进入WordPress管理后台 – 页面 – 创建页面,标题为投稿(可以自己起名),内容填上投稿说明等,右侧可以选择模板,选择 tougao 即可好了,基本的投稿功能已经添加完毕,至于表单样式不好看,表单缺少你想要的项目等问题,你就自己添加css、表单项吧。

分类: 网页设计 标签: 日期:2010-10-05

微软终于放弃竞争博客平台市场,将于即日起鼓励原Windows Live Spaces的使用者,将博客转移至合作伙伴WordPress.com的博客系统。

微软与Automattic Inc.于周一宣布共同合作案,微软表示将关闭Windows Live Spaces博客平台,塬使用者可将Live Spaces上的博客转移至WordPress.com上,Live Spaces预计将于6个月后,也就是2011年3月正式关闭。

截至今年6月,WordPress.com上已经有1,140万余个博客,而这一次的合作案,预计将顺利取代约300万余个博客。

谈到Windows Live Spaces,约在2006年底宣佈推出,市场上一般认为是MSN Spaces的復出,几乎可说是微软社交网路平台的基础,微软也企图将众多社交服务如网路硬盘、博客、通讯状态等,集合在Live Spaces上。

尽管如此,但去年6月微软Tony East表示:「尽管Spaces仍然是全球最受欢迎的博客平台,却已经发现愈来愈少使用者撰写博客,甚至是花时间开设一个博客,反而有愈来愈多人乐于去分享一个简短的状态讯息(比如twitter)、照片,或是值得分享的网页链接,而不再花时间写一篇较长的博客文章。」

现在,微软Dharmesh Metha则明白表示:「当我们在检测使用者在博客方面的需求,以及其它博客平台的功能时,便对WordPress.com特别感到兴趣,尤其他们已经达到相当惊人的规模-WordPress平台已经代管了260万个博客网站,等于全世界网页量的8.5%,每月将近有2.5亿次阅读量。不仅如此,Automattic(WordPress.com的母公司)倾全力为使用者创造最佳的博客经验。因此,与其继续投资Live Spaces服务不断与其它博客平台竞争,我们决定真的为使用者着想,提供他们最好的博客系统-WordPress.com。」

目前使用者一登入Live Spaces网站,迎面而来是微软官方的转移公告,使用者有3种选项,一是转移原有的Live Spaces网站至WordPress.com,或是下载博客的备份档案,要不然就是干脆删除整个博客

微软表示,目前为止Live Spaces仍然能正常使用,但从明年1月开始,便无法在Live Spaces继续新增或编删文章,直到2011年3月,便会删除全部没有完成移转的Live Spaces博客。

然而,微软公告也明白指出,仅仅只能转移Live Spaces的博客文章,并不会转移草稿文章、网页背景主题、小工具、访客留言和清单。换句话说,文章留言将会随着转移平台的过程中消失。

根据测试,所备份下来的Live Spaces网站仅仅只有文章内容本文而已,并没有备份访客留言。不过在实际将Live Spaces博客转移至WordPress.com时,仍能够顺利保留文章访客留言无误。根据微软与Automattic的合作协议,MSN与WordPress也会打通。另外,WordPress将会成为Windows Live Essentials 2011的默认博客平台,该软件将于今年晚期推出。

微软放弃博客平台引发业内人士的争议。此举证明微软放弃在社交媒体领域建立自己的领地,后期将采用 Windows Live 帐户与各社交平台互通的方式发展。

分类: 网络感想 标签: 日期:2010-09-28

很多架站软件都可以让你的网站变成完整的社群网站,其中最常见的就是Discuz论坛系统,透过他并搭配UCHome就可以让网站变成一个小型的社群网站,就跟Facebook一样可以有相簿、个人信息、博客、加好友等等,很方便。但你知道吗?世界上最多人使用的博客系统WordPress也可以摇身一变成为社群网站!

BuddyPress是WordPress MU的一个外挂,后来被WordPress买下来了,感觉就是要强大WordPress的社群功能,由官方接手开发吧!不过别担心,这个外挂和WordPress一样都使是免费的,只要你安装了WordPress并启动MU功能就可以安装这个社群网站外挂,让你的网站也可以成为热闹的社群系统。

越来越多网站走向社群平台,就连WordPress也迈向这一块市场,虽说WordPress本身会员机制很阳春,不过搭配上BuddyPress倒是可以增强一下下,实际上还是有别于论坛或是CMS系统的会员机制,只能透过外挂来加强或是期待未来官方可以着手于会员系统的开发、强化。

这个BuddyPress是一款WordPress的外挂系统,必须搭配WordPress MU才可以使用。安装完外挂后会提供您一个互动的社群平台,可以建立群组(小圈圈)、发表个人即时讯息状态、私人短讯、个人名片、发表讨论主题(附有讨论区功能),若有启动博客功能,每个用户还可以拥有个人博客,只要有新文章发表都会显示在讨论区上面或是个人状态。如果弄成功的话,就会像WordPress.com这个网站一样喔!

插件名称:BuddyPress

官方网站:http://buddypress.org/

备注事项:需先安装WordPress并启动WordPress MU功能。

分类: 网页设计 标签: 日期:2010-09-26

     WordPress有很多实现相关文章功能的插件,插件的优点是配置简单,但是可能会对网站的速度造成一些小的影响,所以很多人还是比较喜欢用代码实现需要的功能,但是话又说回来了,代码实现也有缺点,就是配置复杂,不懂代码的人完全摸不着头脑或者只能照搬别人的代码,还不如用插件。

     这里我整理编写了几种用代码实现相关文章的方法,这其中会详细标明各部分代码的作用,以及如何自定义你想要的功能,希望对大家有所帮助,有什么问题可以给本文发表评论,我会及时给你回复。开始之前,说明一点,以下所有方法输出的HTML代码格式都是以下形式,你可以根据需要进行修改:

 <ul id="xxx">
    <li>* <a title="文章标题1" rel="bookmark" href="文章链接1">文章标题1</a></li>
    <li>* <a title="文章标题2" rel="bookmark" href="文章链接2">文章标题2</a></li>
    ......
</ul> (更多...)

分类: 网页设计 标签: 日期:2010-09-05

解决WorPress 3.0.1自动草稿的方法是:依旧启用原先的disable revisions and autosave插件,然后编辑wp-admin/includes/post.php文件,在if ( $create_in_db ) {语句之前加入一行$create_in_db = false; 语句,经过实际测试,增加了这一行之后,新建日志,数据库就不会出现一篇自动存档的草稿了。

  但是这种修改WordPress源代码的方法是很不好的,这会导致以后每次WordPress升级,都需要维护修改一次,工作量会越来越大,不如用插件的方式解决,可惜目前实在找不到如何使用插件来解决这个问题,要是WordPress下一个版本能官方解决就好了。

分类: 网页设计 标签: 日期:2010-08-26

记得刚开始使用wordpress的时候经常看到刚发表完的文章google就马上收录,后来了解到,wordpress有一个更新服务,官方则给了一个RPC的列表,把这个列表写在后台即可,这样就可以做到实时更新博客内容了,我从网上也找到了大量的RPC地址,并且做过几次的修改,把有用的留下,失效的剔除,但是百度我一直没有找到这个RPC地址的,今天抽空把百度的搜索引擎优化指南给看了,发现这里写出了百度的PRC地址,我很高兴的加进了我的博客,并且和大家分享下。

百度PRC地址:http://ping.baidu.com/ping/RPC2

另外经常我长时间的整理,我也拥有一份很强的RPC列表,共收录52个地址,可以算是最强的wordpress PRC地址列表了。这里我也共享出来。 (更多...)

分类: 网页设计 标签:, 日期:2010-08-23

wordpress3.0以后就默认支持了menus功能,刚开始看到一些主题是提前支持菜单功能的,这次自己也给主题添加上了菜单功能,加上这个功能后主题就是适用于3.0以后的版本了。

给主题添加menu功能主要是两部分,一个是在functions.php文件里面添加注册menu,另一个是在header.php文件里添加menu列表。

functions.php

里面添加

<?php register_nav_menus(array('primary' => 'Primary Navigation')); ?>

header.php

里面添加

<?php wp_nav_menu(); ?>

这样一个就可以支持新的menu功能了。

更详细的方法可以参考neoease的WordPress 3.0 导航菜单 使用篇和开发篇。

分类: 网页设计 标签: 日期:2010-08-17

WordPress 是一个注重美学、易用性和网络标准的个人信息发布平台。WordPress 虽为免费的开源软件,但其价值无法用金钱来衡量。使用 WordPress 可以搭建功能强大的网络信息发布平台,但更多的是应用于个性化的博客。针对博客的应用,WordPress 能让您省却对后台技术的担心,集中精力做好网站的内容。老是说, 3.0.1 英文版本已经出来好久了,汉化版也早就有人提供,经过久久的等待,官方正式的中文版本终于发布

分类: 网页设计 标签: 日期:2010-08-14

添加导航菜单和菜单项

你可以创建多个导航菜单,每个菜单里,可以添加自定义链接项、页面项和分类项进去。

添加进去以后,你可以又再编辑每个项目的链接,输出文本和Title属性。

你可以拖拽每个项目来排序菜单项。

3、通过Widget输出导航菜单

添加好菜单后,进入Appearance-》Widgets(外观-》小工具), 把Navigation Menu这个Widget拖到你的Sidebar模块里,选择一个菜单输出即要。

4、通过手动代码输出导航菜单

如果你的主题不支持Widget或你不想使用Widget,你可以使用函数wp_nav_menu()直接输出导航菜单:

以下为引用的内容:

<?php wp_nav_menu($args); ?>
 

(更多...)

分类: 网页设计 标签: 日期:2010-08-12