wordpress如何统计用户已发布日志数量?

即使接触wordpress很久,也很难全部熟悉wordpress众多内置函数。
遇到一个问题时,我们总会在自己已知的世界里搜寻答案,譬如这个问题:

如何统计当前用户已发布的日志数量?

首先想到可以用WP_Query来实现,如:

    $authorid = get_current_user_id();

    $args = array( 
        'post_type'     => 'post',
        'post_status'   => 'publish',
        'author'        => $authorid,
    );         

    $query = new WP_Query($args);

    $count = $query->found_posts;

    wp_reset_query();

    return $count;

Continue reading wordpress如何统计用户已发布日志数量?

[原创]wordpress中修改文章排序字段的几种方法

关于wordpress排序,默认依post_date排序;wordpress内定允许的排序字段包括:

'post_name', 'post_author', 'post_date', 'post_title', 'post_modified','post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified','parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand'

如果需要修改文章依ID字段排序,方法大致有:
1、可以向posts_orderby这个hooks添加内容。位于wp-includes/query.php中 3206行。
Continue reading [原创]wordpress中修改文章排序字段的几种方法

wordpress:处理www和non-www之间的跳转

这个问题其实在wordpress里似乎不存在,在后台将“站点地址(URL)”设置为

http://www.yourwordpressite.com

访客通过

http://yourwordpressite.com

也能访问,原因在于wordpress进行了301跳转。实现代码可参考

/wp-includes/ -> canonical.php -> redirect_canonical()

既然已经内设了这个功能,为什么还要讨论www和non-www之间的跳转问题呢?
问题源于今天查看阿里云监控时,提示www和non-www之间存在的时间差。我在想,这个时间差也许就是wordpress内设功能所耗费的吧?!

参考了一些资料包括别人的讨论,再根据自己的实际情况(nginx服务器),对站点配置文件进行调整,具体如下:
Continue reading wordpress:处理www和non-www之间的跳转

[原创]wordpress:添加引导页

经常在制企业主题时,客户会提出访客访问时,能有一个引导页,用以展示企业形象或者引导客户选择语种等。
针对该需求,我是这样来处理的:
依照wordpress的模板机制,如果存在home.php,则home.php最先被引入。
只要在home.php里增加判断,即可以实现引导页的功能。
比如我单独建立引导页为welcome.php,首页为index.php
然后利用cookie是否为空或传入参数来引入引导页。

home.php的完整示例代码:

    global $welcome;
    $welcome = !( isset($_COOKIE['welcome']) ) )? true : false;
    if ( $welcome ) {
        setcookie('welcome', 'welcome', time()+3600, COOKIEPATH, COOKIE_DOMAIN);
        require_once 'welcome.php';
    }else{
        include_once 'index.php';
    }

上面的代码表示,访客访问时,如果没有cookie记录,则显示引导页,否则显示首页!
1小时内访客重复访问时,不再显示引导页,减少影响。

如果您想访客每次访问首页时,都先显示引导页,则需调整上面的代码,改成通过引入参数来判断什么时候引入index.php!

[原创]wordpress:屏蔽近期评论小工具中博主自己的留言

屏蔽近期评论小工具中博主自己的留言?具体需求是这样的:

我在首页将小工具用户评论搞了出来,但我每次跟的评论都显示在上面,全部把别人的评论覆盖了,请问如何将自己的评论给屏蔽掉呢?
来源:http://www.wpcourse.com/bbs/read-htm-tid-5235-ds-1-page-1.html

针对该问题,可针对widget_comments_args和comments_clauses两个hooks进行定制化处理;分别位于:
widget_comments_args – wp-includes/default-widgets.php中 WP_Widget_Recent_Comments 部分
comments_clauses – wp-includes/comment.php中WP_Comment_Query::query部分

详细实现代码如下:
Continue reading [原创]wordpress:屏蔽近期评论小工具中博主自己的留言