四
21
2009
11个新WordPress技巧
发布者: seasun1.如何载入WordPress自带的JS库
你可运用wp_enqueue_script function函数来载入WordPress自带的jQuery,而不使用任何的插件。代码如下:
<?php wp_enqueue_script('jquery'); ?>
2. 防止垃圾邮件
如果你在博客上公布了你的邮件地址,那么你可能每天都会收到很多的垃圾邮件,你可以使用免费的在线邮件保护服务,或是WordPress自带的antispambot()函数来解决:
<?php echo antispambot(get_the_author_email()); ?>
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.显示相关分类和作者内容
让你的博客支持相关内容的显示,对读者的延展性阅读非常有用。比如下面这个截图的网站就支持此功能:
你能在每篇文章中显示更多的相关内容,比如相关分类和作者的更多内容来吸引读者的兴趣。同步显示这些内容稍微有点麻烦,Darren Hoyt提供了一个基于Ben的代码的简化版本。
<?php //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 .= '<li><a href="' . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>'; } } } // 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 .= '<li><a href="' . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>'; } } } $wp_query = $tempQuery; ?>
调用代码为:
<h6>More from this category</h6> <ul> <?php echo $categoryPosts; ?> </ul> <h6>More from this author</h6> <ul> <?php echo $authorPosts; ?> </ul>
5.为文章添加自定义图片
没有WordPress自定义字段功能,我们就不能见到如此多惊奇的WordPress专业主题,你想知道怎样有效的使用它来准确的显示每篇文章的缩略图么?你需要在主题中插入类似以下的代码:
<img src="<?php bloginfo('template_directory'); ?>/images/<?php $values = get_post_custom_values " img="" );="" echo="" $values[0];="" ?="">" 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文件中。
Wordpress Hotlink protection plugin是一个实用的防盗链插件,它不会保护你RSS中的图片,所以RSS阅读器也能正常读取你的图片。
7.创建自定义字段面板
如你在在使用博客的自定义功能,你可通过自定义字段选项功能给文章添加各种类型的数据,自定义功能面板是WordPress自带的最有用的定制化功能的工具,并且能给文章添加各种不同类型的信息,你只需添加“add_meta_box()“标签。

关于创建自定义面板的详细教程请参考官方的“add_meta_box()“说明。
8.使用Google自定义搜索替换默认的WordPress搜索
想在不添加任何插件和页面的情况下,使用Google自定义搜索代替默认的WordPress搜索?你要做的第一件事情就是创建一个Google自定义搜索帐户,Maki from Doshdosh.com已经发布了一个怎样嵌入Google自定义搜索到自己网站的教程。
这个来自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,只需添加以下的代码:
<a href="<?php echo get_the_category().'/feed'; ?>"><?php echo get_the_category().' rss feed'; ?></a>
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则为你想要从搜索结果页面移除的分类。













