十个实用的WordPress自定义字段技巧
在这篇文章中,我们将给大家介绍十个实用的WordPress自定义字段技巧。其中包括文章过期时间设置,确定前端页面中的文章如何显示,显示您的情绪或者音乐,嵌入自定义的CSS样式,禁止搜索引擎索引个别文章,在您需要的时候插入“Digg”按钮,当然也会在您的文章边上显示缩略图。
WordPress在前面的文章中我们曾讨论过WordPress处理技巧,令人难以置信的是它的灵活性,也正因为这个,它成为世界上最受欢迎的博客框架。尤其是 自定义字段 , 它允许用户创建可变的,也可以加入更多的自定义字段,也使得WordPress 变得更加灵活。
在这篇文章中,我们收集了 WordPress 中10个有用的,您可以使用的自定义字段。其中包括文章过期时间设置,确定前端页面中的文章如何显示,显示您的情绪或者音乐,嵌入自定义的CSS样式,禁止搜索引擎索引个别文章,在您需要的时候插入“Digg”按钮,当然也会在您的文章边上显示缩略图。
1. 给帖子设定时间期限

问题:有时候 (例如, 您正在管理一篇辩论搞), 您希望发布一篇文章,然后在一个固定的时间自动关闭文章显示。这看起来很不容易,但事实绝非如此,您有自定义字段的权利。
解决方案:编辑您的主题,用下面的“hacked” 循环来替换当前 WordPress 中的循环:
<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('expiration');
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example...
the_title();
the_excerpt();
}
endwhile;
endif;
?>
创建一篇文章在一个固定的时间或日期之后过期,您所需要的仅仅是自定义一个字段。指定一个关键字标识 expiration 为日期或者时间格式 (必须为 mm/dd/yyyy 00:00:00)。在这个时间之后这篇文章就不显示了。
代码解释:这段代码简单的 WordPress 循环会自动查询是否存在有自定义字段叫 expiration。如果存在,对比自定义时间跟当前的时间。
2. 确定如何使博客文章显示在首页

问题:我总是想知道为什么有 95% 的博客选择在博客首页中全文显示发布过的 所有/em> 文章。当然,WordPress 中并没有默认的内置选项来告诉您如何显示一篇文章。但是等等:通过自定义字段我们就可以很容易地实现。
解决方案:下面的技巧可以帮组您定义如何显示文章在您的首页。这两个值是需要用到的:
* 全文浏览
* 仅显示摘要
我们会再一次用到自定义 WordPress 循环。在您的 index.php 文件中找到循环,然后用下面的代码来替换:
<?php if (have_posts()) :
while (have_posts()) : the_post();
$customField = get_post_custom_values("full");
if (isset($customField[0])) {
//Custom field is set, display a full post
the_title();
the_content();
} else {
// No custom field set, let's display an excerpt
the_title();
the_excerpt();
endwhile;
endif;
?>
在这段代码中,摘要作为默认显示项。为了在您的博客首页中显示全文,那么您需要简单地编辑文章,给自定义字段 full 赋一个任意值。
代码解释:这段代码更加简单。首先,创建一个类似 full 的自定义字段,如果被赋值,那么显示全文,反之,显示摘要。
如果当前日期或时间等于或者大于自定义字段 expiration 中的值,那么这篇文章就不会显示了。注意,这段代码不会删除或取消您的文章的发布,仅仅是通过循环不让文章显示。
3.心情显示以及当前收听的歌曲

问题:大概在五六年钱,我的博客是通过一个叫LiveJournal的平台来运行的。当然,这个远远没有WordPress优秀,但它有一个非常好的特征是WordPress所没有的。例如,它允许用户来显示当他们在撰写博客时的心情和正在收听的音乐。
尽管我没有把这些特征应用到我的博客中,我想很多博客们对这个在WordPress中的应用还是会非常感兴趣的。
解决方案:打开您的文件 single.php (或者修改您的文件 index.php ), 并将下面的代码粘贴到您想要的任意一个循环中:
$customField = get_post_custom_values("mood");
if (isset($customField[0])) {
echo "Mood: ".$customField[0];
}
保存文件。好了,当您新撰写一篇文章的时候,就创建一个自定义字段,叫做 mood, 然后输入您当前的心情。
代码解释:自定义字段方法非常简单,这个跟众所周知的,在首页的摘要旁显示您的缩略图的方法没有多大区别。看来仅需要类似 mood 这样的自定义字段,如果设置了值,那么就显示。
4. 给您的文章添加Meta描述符
问题:WordPress, 令人惊讶的是,不使用描述标签的作为meta预设值。
当然,对于SEO来说,现在的meta标签已经没有以前那么重要了。然而,尽管如此,它们依然可以提高您的博客在搜索引擎中的排名。
如何又是使用自定义字段来创建描述单独帖子的meta描述呢?
解决方案:打开文件 header.php。复制下面的代码到 <head> 和 </head>标签内。
<meta name="description" content="
<?php if ( (is_home()) || (is_front_page()) ) {
echo ('Your main description goes here');
} elseif(is_category()) {
echo category_description();
} elseif(is_tag()) {
echo '-tag archive page for this blog' . single_tag_title();
} elseif(is_month()) {
echo 'archive page for this blog' . the_time('F, Y');
} else {
echo get_post_meta($post->ID, "Metadescription", true);
}?>">
代码解释:为了生成 meta 的描述语,这里采用的是 WordPress 中广泛采用的条件式标签来决定哪些用户会访问这个页面。
目录页,标签页,存档页及站点首页,使用的都是静态 meta 描述语。编辑行3,7,9来定义您自己的页面。这样,在文章中,代码会寻找自定义字段 Metadescription,并将其中的值作为 meta 描述语。
5. 链接到外部资源

问题:很多博客们都问过我下面的问题:“我如何直接链接到外部来源,而不是创建一个帖子,仅仅是为了告诉访客们怎么去访问其他站点。”
这个问题可以通过自定义字段来实现。让我们来看看怎么才能做到这点。
解决方案:首先要做的是打开您的文件 functions.php,然后粘贴下面的代码:
function print_post_title() {
global $post;
$thePostID = $post->ID;
$post_id = get_post($thePostID);
$title = $post_id->post_title;
$perm = get_permalink($post_id);
$post_keys = array(); $post_val = array();
$post_keys = get_post_custom_keys($thePostID);
if (!empty($post_keys)) {
foreach ($post_keys as $pkey) {
if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {
$post_val = get_post_custom_values($pkey);
}
}
if (empty($post_val)) {
$link = $perm;
} else {
$link = $post_val[0];
}
} else {
$link = $perm;
}
echo '<h2><a href="'.$link.'" rel="bookmark" title="'.$title.'">'.$title.'</a></h2>';
}
完成之后,打开文件 index.php 并替换输出的标准代码…
<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?></a></h2>
… 用新创建的方面 print_post_title() :
<?php print_post_title() ?>
好了,当您需要指向处自己博客之外的文章,仅仅需要滚动您的编辑器的下方,创建或者选择自定义字段 url1 或 title_url 或 url_title ,输入外部 URL 地址就可以了。
代码解释:这是一段非常友好的自定义功能替换 the_title() WordPress 函数。
基本上而言,这段功能跟老的 the_title() 函数一样优秀,而且也是一个自定义字段。如果查找到字段 url1 或 title_url 或 url_title 的值,那么就会直接链接到外部站点而不是博客文章。如果自定义字段值没有找到,就会简单地显示链接本身。
6. 嵌入自定义的CSS样式

问题:某些文章可以需要额外的 CSS 样式。当然,您也可以选择 WordPress 的编辑器进入HTML 模式进行编辑,加入内置的样式到文章内容中。但即使内置样式是有效的,但这总不是最简单的处理方法。
用自定义字段,我们可以很容易地为个别文章创建新的 CSS 类,并自动加载它们到博客的 header 中。
解决方案:首先,打开文件 header.php ,然后哦插入如下的代码到 HTML 标签<head> 跟 </head>中:
<?php if (is_single()) {
$css = get_post_meta($post->ID, 'css', true);
if (!empty($css)) { ?>
<style type="text/css">
<?php echo $css; ?>
<style>
<?php }
} ?>
7. 重定义The <title>标签
问题:对于博客,就想其他所有类型的网站一样,内容为王。而SEO对您的目标流量是至关重要的。WordPress主题的默认值是没有对标签 <title> 做过优化的。
某些插件,如众所周知的“All in One SEO Pack”重写了这个,但您依然可以通过自定义字段来解决。
解决方案:打开文件 header.php 并编辑。找到标签 <title> tag 并替换下面的代码:
<title> <?php if (is_home () ) { bloginfo('name'); } elseif ( is_category() ) { single_cat_title(); echo ' - ' ; bloginfo('name'); } elseif (is_single() ) { $customField = get_post_custom_values("title"); if (isset($customField[0])) { echo $customField[0]; } else { single_post_title(); } } elseif (is_page() ) { bloginfo('name'); echo ': '; single_post_title(); } else { wp_title('',true); } ?> </title>
然后,如果您想自定义 title 标签,简单地创建自定义字段 title, 并为它赋值就可以了。
代码解释:通过这段代码,我为各个类别的帖子,如首页,分页,目录页及博客文章用不同标记模板生成一个自定义 。
如果当前活动的页面是篇博客文章,代码会寻找自定义字段 title。如果找到了,就会显示自定义字段中的值,反之,显示标准的 single_post_title() 生成的标题。
8. 禁止搜索引擎搜索博客文章

问题:您是否曾想过创建一篇半隐私文章,允许普通读者访问,而不是搜索引擎?如果是这样的话,最简单的解决方案是…您肯定猜到了!用自定义字段。
解决方案:首先,获取您不想被搜索引擎索引的文章的ID号。我们以ID为17的作个范例。
打开文件 header.php 粘贴下面的代码到标签 <head>和</head>中:
<?php $cf = get_post_meta($post->ID, 'noindex', true);
if (!empty($cf)) {
echo '<meta name="robots" content="noindex"/>';
}
?>
仅此而已,这对于您不想将某些信息被搜索引擎索引到的是非常有用的!
代码解释:在这个示例中,我们使用 get_post_meta() 方法来检索自定义字段 noindex。如果值设置了,那么添加标记 。
9. 用自定义函数轻松地获取或者打印自定义字段值

问题:现在我们已经展示给了您不少优秀地怎么应用自定义字段的方法,那么怎样才能轻松地用自动化的函数来获取自定义字段值呢?
对于程序员或者对PHP比较熟悉的人员来说,获取自定义值并不是什么困难的事,但对于非程序员而言却非常痛苦。通过这个方法,获得任何自定义字段值从未如此简单。
解决方案:将一下代码方法粘贴到您的主题文件 functions.php 中。如果主题中没有这个文件,那么就请创建它。
function get_custom_field_value($szKey, $bPrint = false) {
global $post;
$szValue = get_post_meta($post->ID, $szKey, true);
if ( $bPrint == false ) return $szValue; else echo $szValue;
}
好了,通过下面的代码来调用这个方法就会获得自定义字段的值:
<?php if ( function_exists('get_custom_field_value') ){ get_custom_field_value('featured_image', true); } ?>
代码解释:首先,我们使用 PHP 的函数 function_exists() 判断是否存在 get_custom_field_value 方法是否已经在主题中定义过了。如果存在,我们就可以使用。第一个参数是自定义字段名称 (这里是, featured_image), 第二个参数是允许您直接输出值 (true) 或者以备作为之后的PHP 使用 (false)。
10.根据需要随时添加Digg按钮

问题:从众所周知的 Digg.com 中获得点击量的最好的方法是将“Digg this”按钮添加到您的每一篇文章中,浏览者可以协助您成功发布这篇文章。
但是,对于您的所有博客都采用这个按钮?当然不是。例如,如果您撰写了一条关于来改善您的网站的声明,提交到Digg服务,那是毫无价值的。
解决方案:再次请求自定义字段完成。只要根据下列的步骤开始就可以了:
1. 打开您的文件 single.php 并将这些行粘贴到您想显示“Digg this”按钮的地方:
<?php $cf = get_post_meta($post->ID, 'digg', true);
if (!emptyempty($cf)) {
echo 'http://digg.com/tools/diggthis.js" type="text/javascript">'} ?>
2. 一旦您保存了文件 single.php , 您就可以创建自定义字段 digg 并可以赋任意值。如果赋值,按钮就会显示在文章中。
代码解释:这段代码非常简单。在自定义代码上找到自定义字段 digg, 代码显示“Digg this” 按钮。Digg本身提供JavaScript 用户显示“Digg this” 按钮。
附加:在您的文章边上显示缩略图的方法

问题:大多数人都知道这个巧妙,并成功地应用到他们的博客当中。但我想依然还有很多人不知道怎么友好地将缩略图显示在首页文章的右侧。
查看熟知的技巧请流量我的博客 WpRecipes 和 Cats Who Code.
解决方案:
1. 通过 Photoshop 或 Gimp 开始创建一张默认图片。我的示例图片大小是 200×200 像素,这由您自己决定。命名为 default.gif.
2. 上传图片 default.gif 至您的主题文件夹 image 中。
3. 打开文件 index.php ,粘贴下列代码至您想显示缩略图的地方:
<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);
if ($postimageurl) {
?>
<a href=”<?php the_permalink(); ?>” rel=”bookmark”><img src=”<?php echo $postimageurl; ?>” alt=”Post Pic” width=”200″ height=”200″ /></a>
<?php } else { ?>
<a href=”<?php the_permalink(); ?>” rel=”bookmark”><img src=”<?php bloginfo(’template_url’); ?>/images/wprecipes.gif” alt=”Screenshot” width=”200″ height=”200″ /></a><?php } ?>
4. 保存文件。
5. 在您的每篇博文中创建自定义字段 post-img。可以给每张您想显示的缩略图设置URL值。
代码解释:这段代码寻找自定义字段 post-img。如果找到,它会确保显示自定义缩略图。如果 post-img 的自定义值没有找到,显示默认图片,这样就能确保您的任何文章都会显示缩略图了。
相关文章
- [组图]推荐5个WordPress多国语言翻译插件
- 专访WordPress缩略图插件作者布谷鸟
- [组图]WordPress 2.9带来的新特性
- 使用WP-PageNavi为WordPress创建分页导航
- [下载]Wordpress for BlackBerry 公测版发布
- WordPress专用9款搜索引擎优化(SEO)插件
- [组图]升级必读:WordPress 2.8十大改进与更新详解
- [下载]WordPress 2.8 RC 及中文包发布
- 页面主题定制:WordPress 2.8 body_class()函数详解
- 高效率WordPress缩略图插件:Random Post with Picasa Image












非常好
用过wordpress.总体感觉很不错..