2008年11月29日星期六

新de11个WordPress技巧

1.如何载入WordPress自带的JS库

你可运用wp_enqueue_script function函数来载入WordPress自带的jQuery,而不使用任何的插件。代码如下:



2. 防止垃圾邮件

如果你在博客上公布了你的邮件地址,那么你可能每天都会收到很多的垃圾邮件,你可以使用免费的在线邮件保护服务,或是WordPress自带的antispambot()函数来解决:




3.从RSS中移除特定分类

有时候你希望从RSS中移除一些读者不大感兴趣的分类,这时候你只需要改变提供给RSS烧制商的源地址,移除后的源地址类似于:http://housne.info/feed?cat=-4,其中”4″则为移除分类的ID,你可以在WordPress后台寻找分类的ID,点击Admin panel > Manage > Categories 后你便可看到分类的ID。

如果你并没有烧制自己的RSS,而是提供的RSS源地址给读者的话,你可以在主题的Functions文件中加入一段PHP函数来达到此目的。

# function ExcludeCategory($query) {
if ($query->is_feed) {
$query->set('cat','-79,-26');
}
return $query;
}
add_filter('pre_get_posts','ExcludeCategory');

其中”79″和”26″为移除分类的ID。
4.显示相关分类和作者内容

让你的博客支持相关内容的显示,对读者的延展性阅读非常有用。比如下面这个截图的网站就支持此功能:

wp-hacks1

你能在每篇文章中显示更多的相关内容,比如相关分类和作者的更多内容来吸引读者的兴趣。同步显示这些内容稍微有点麻烦,Darren Hoyt提供了一个基于Ben的代码的简化版本。


//Gets category and author info
global $wp_query;
$cats = get_the_category();
$postAuthor = $wp_query->post->post_author;
$tempQuery = $wp_query;
$currentId = $post->ID;

// related author posts
$newQuery = "posts_per_page=5&author=" . $authorPosts;
query_posts( $newQuery );
$authorPosts = "";
$count = 0;
if (have_posts()) {
while (have_posts()) {
$count++;
the_post();
if( $count<4 && $currentId!=$post->ID) {
$count++;
$authorPosts .= '
  • ' . the_title( "", "", false ) . '
  • ';
    }
    }
    }

    // related category posts
    $catlist = "";
    forEach( $cats as $c ) {
    if( $catlist != "" ) { $catlist .= ","; }
    $catlist .= $c->cat_ID;
    }
    $newQuery = "posts_per_page=5&cat=" . $catlist;
    query_posts( $newQuery );
    $categoryPosts = "";
    $count = 0;
    if (have_posts()) {
    while (have_posts()) {
    the_post();
    if( $count<4 && $currentId!=$post->ID) {
    $count++;
    $categoryPosts .= '
  • ' . the_title( "", "", false ) . '
  • ';
    }
    }
    }
    $wp_query = $tempQuery;
    ?>

    调用代码为:

    More from this category





    More from this author





    5.为文章添加自定义图片

    没有WordPress自定义字段功能,我们就不能见到如此多惊奇的WordPress专业主题,你想知道怎样有效的使用它来准确的显示每篇文章的缩略图么?你需要在主题中插入类似以下的代码:

    " alt="" />

    你放置代码的地址比如包含Loop,你可直接使用WordPress的撰写后台的图片上传功能代替FTP上传,这样你能直接自定义“上传”文件夹,并能得到图片路径,复制在自定义字段值里。
    6.防止盗链

    有很到方法来防止你博客上的图片被其他的网站或是垃圾站点盗链,最常见的方法就是编辑你WordPress根目录的.htaccess文件,代码如下:

    RewriteEngine On
    #Replace ?mysite\.com/ with your site url
    RewriteCond %{HTTP_REFERER} !^http://(. \.)?mysite\.com/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    #Replace /images/no-hotlink.jpg with your "no hotlink allowed" image url
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/no-hotlink.jpg [L]

    接下来你需要制作一张防盗链警示图片上传上网站根目录的images文件夹里,并命名为no-hotlink.jpg。

    如果你已经放置了以上的代码到你的.htaccess,想要查看它是否可行,可以尝试使用这个工具来查看盗链你网站图片时将会显示的图片。

    使用此方法的唯一毛病就时,RSS阅读器也不能读取你的图片,你可添加一些常见RSS阅读器的地址到.htaccess文件中。

    wp-hacks2

    Wordpress Hotlink protection plugin是一个实用的防盗链插件,它不会保护你RSS中的图片,所以RSS阅读器也能正常读取你的图片。
    7.创建自定义字段面板

    如你在在使用博客的自定义功能,你可通过自定义字段选项功能给文章添加各种类型的数据,自定义功能面板是WordPress自带的最有用的定制化功能的工具,并且能给文章添加各种不同类型的信息,你只需添加“add_meta_box()“标签。

    wp-hacks3

    关于创建自定义面板的详细教程请参考官方的“add_meta_box()“说明。
    8.使用Google自定义搜索替换默认的WordPress搜索

    想在不添加任何插件和页面的情况下,使用Google自定义搜索代替默认的WordPress搜索?你要做的第一件事情就是创建一个Google自定义搜索帐户,Maki from Doshdosh.com已经发布了一个怎样嵌入Google自定义搜索到自己网站的教程。

    wp-hacks4

    这个来自firewalker的漂亮教程,将会向你展示如何在你目前的主题的SEARCH FORM和SEARCH RESULTS页面中插入Google自定义搜索代码。
    9.使用摘要代替全文输出(不需要修改主题)

    WordPress的 the_content() 标签用来显示文章的全部内容,而如果你只是想显示文章的摘要,可使用 the_excerpt() 代替the_content() 标签,但如果你并不想修改主题的核心文件,而且在下次主题升级的时候保持之前对主题的修改有效。

    Justintadlock有解决此问题的方法:WordPress filters

    在当前文件夹的Function.php文件中加入以下代码,来告诉WordPress我们想要过滤 the_content() :

    // Add filter to the_content
    add_filter('the_content', 'my_excerpts');

    10.提供各分类的RSS

    如果你想为每个分类提供RSS,让你的读者只订阅他们感兴趣的项目的话,让我来举个例子,如果你想给你名为”wordpress”的分类提供RSS的话,分类的连接类似于:

    http://housne.info/category/wordpress

    取得分类为”wordpress”的RSS地址很简单,只需要在其连接后面加上”/feed”

    http://housne.info/category/wordpress/feed

    为各分类提供RSS,只需添加以下的代码:



    11.从搜索结果中移除页面

    如果你想从WordPress搜索结果中移除页面,你只需在当前主题的Function.php文件中添加一个过滤器,代码如下:

    // Exclude pages from search results
    function SearchFilter($query)
    {
    if ($query->is_search)
    {
    $query->set('cat','20,34,8');
    }
    return $query;
    }
    add_filter('pre_get_posts','SearchFilter');

    其中ID为20,34,8则为你想要从搜索结果页面移除的分类。

    原文地址: Most Wanted WordPress Hacks: 11 New Requests (2)

    并不是按原文直接翻译过来的,而是通过自己的理解翻译的,可能有些地方是是很完善和准确,还可能有些错误,希望能谅解并指出,第一次翻译这么长的问题,头大了一大圈了,哎,看来自己得继续学E问了!@_@

    没有评论: