首页 » 科技 » 11个新WordPress技巧

11个新WordPress技巧

1.如何载入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.显示相关分类和作者内容

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

wp-hacks1

你能在每篇文章中显示更多的相关内容,比如相关分类和作者的更多内容来吸引读者的兴趣。同步显示这些内容稍微有点麻烦,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 &quot;no hotlink allowed&quot; 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,只需添加以下的代码:

<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则为你想要从搜索结果页面移除的分类。

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

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

【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】

0

返回正文评论

      第一条在WordPress 2.7 中无效,事实上即使直接使用绝对路径也无效,Google jsApi提供的min版本有54K真不爽