WP博客中的10个自定义字段代码

  • A+
所属分类:教程学习

WordPress处理技巧以及令人难以置信的是它的灵活性,让它成为世界上最受欢迎的博客框架。尤其是自定义字段,它允许用户创建可变的,也可以加入更多的自定义字段,也使得WordPress 变得更加灵活。

在这篇文章中,我们收集了 WordPress 中10个有用的,您可以使用的自定义字段。其中包括文章过期时间设置,确定前端页面中的文章如何显示,显示您的情绪或者音乐,嵌入自定义的CSS样式,禁止搜索引擎索引个别文章,在您需要的时候插入“Digg”按钮,当然也会在您的文章边上显示缩略图。

给帖子设定时间期限
问题:有时候 (例如, 您正在管理一篇辩论搞), 您希望发布一篇文章,然后在一个固定的时间自动关闭文章显示。这看起来很不容易,但事实绝非如此,您有自定义字段的权利。
解决方案: 编辑您的主题,用下面的“hacked” 循环来替换当前 WordPress 中的循环:

  1. <?php  
  2. if (have_posts()) :  
  3. while (have_posts()) : the_post(); ?>  
  4. $expirationtime = get_post_custom_values(’expiration’);  
  5. if (is_array($expirationtime)) {  
  6. $expirestring = implode($expirationtime);  
  7. }  
  8. $secondsbetween = strtotime($expirestring)-time();  
  9. if ( $secondsbetween > 0 ) {  
  10. // For example…  
  11. the_title();  
  12. the_excerpt();  
  13. }  
  14. endwhile;  
  15. endif;  
  16. ?>  

创建一篇文章在一个固定的时间或日期之后过期,您所需要的仅仅是自定义一个字段。指定一个关键字标识 expiration 为日期或者时间格式 (必须为 mm/dd/yyyy 00:00:00)。在这个时间之后这篇文章就不显示了。
代码解释。 这段代码简单的 WordPress 循环会自动查询是否存在有自定义字段叫 expiration。如果存在,对比自定义时间跟当前的时间。
如果当前日期或时间等于或者大于自定义字段 expiration 中的值,那么这篇文章就不会显示了。
注意,这段代码不会删除或取消您的文章的发布,仅仅是通过循环不让文章显示。

确定如何使博客文章显示在首页
问题: 我总是想知道为什么有 95% 的博客选择在博客首页中全文显示发布过的 所有文章。当然,WordPress 中并没有默认的内置选项来告诉您如何显示一篇文章。但是等等:通过自定义字段我们就可以很容易地实现。
解决方案。 下面的技巧可以帮组您定义如何显示文章在您的首页。这两个值是需要用到的:
我们会再一次用到自定义 WordPress 循环。在您的 index.php 文件中找到循环,然后用下面的代码来替换:

  1. <?php if (have_posts()) :  
  2. while (have_posts()) : the_post();  
  3. $customField = get_post_custom_values(”full”);  
  4. if (isset($customField[0])) {  
  5. //Custom field is set, display a full post  
  6. the_title();  
  7. the_content();  
  8. else {  
  9. // No custom field set, let’s display an excerpt  
  10. the_title();  
  11. the_excerpt();  
  12. endwhile;  
  13. endif;  
  14. ?>  

在这段代码中,摘要作为默认显示项。为了在您的博客首页中显示全文,那么您需要简单地编辑文章,给自定义字段 full赋一个任意值。
代码解释。 这段代码更加简单。首先,创建一个类似full 的自定义字段,如果被赋值,那么显示全文,反之,显示摘要。

在博客显示你的心情或你正在收听的音乐
问题: 大概在五六年钱,我的博客是通过一个叫LiveJournal的平台来运行的。当然,这个远远没有WordPress优秀,但它有一个非常好的特征是WordPress所没有的。例如,它允许用户来显示当他们在撰写博客时的心情和正在收听的音乐。
尽管我没有把这些特征应用到我的博客中,我想很多博客们对这个在WordPress中的应用还是会非常感兴趣的。
解决方案:打开您的文件 single.php (或者修改您的文件 index.php ), 并将下面的代码粘贴到您想要的任意一个循环中:

  1. $customField = get_post_custom_values(”mood”);  
  2. if (isset($customField[0])) {  
  3. echo “Mood: “.$customField[0];  
  4. }  

保存文件:好了,当您新撰写一篇文章的时候,就创建一个自定义字段,叫做 mood, 然后输入您当前的心情。
代码解释: 自定义字段方法非常简单,这个跟众所周知的,在首页的摘要旁显示您的缩略图的方法没有多大区别。看来仅需要类似 mood 这样的自定义字段,如果设置了值,那么就显示。

给您的文章添加Meta
问题: WordPress, 令人惊讶的是,不使用描述标签的作为meta预设值。
当然,对于SEO来说,现在的meta标签已经没有以前那么重要了。然而,尽管如此,它们依然可以提高您的博客在搜索引擎中的排名。
如何又是使用自定义字段来创建描述单独帖子的meta描述呢?
解决方案: 打开文件 header.php。复制下面的代码到 和 标签内:

  1. <meta name=”description” content=”  
  2. <?php if ( (is_home()) || (is_front_page()) ) {  
  3. echo (’Your main description goes here’);  
  4. elseif(is_category()) {  
  5. echo category_description();  
  6. elseif(is_tag()) {  
  7. echo ‘-tag archive page for this blog’ . single_tag_title();  
  8. elseif(is_month()) {  
  9. echo ‘archive page for this blog’ . the_time(’F, Y’);  
  10. else {  
  11. echo get_post_meta($post->ID, “Metadescription”, true);  
  12. }?>”>  

代码解释:为了生成 meta 的描述语,这里采用的是 WordPress 中广泛采用的条件式标签来决定哪些用户会访问这个页面。
To generate meta descriptions, this hack makes extensive use of WordPress conditional tags to determine which page the user is on.
目录页,标签页,存档页及站点首页,使用的都是静态 meta 描述语。编辑行3,7,9来定义您自己的页面。这样,在文章中,代码会寻找自定义字段 Metadescription,并将其中的值作为 meta 描述语。

链接到外部资源
问题。 很多博客们都问过我下面的问题:“我如何直接链接到外部来源,而不是创建一个帖子,仅仅是为了告诉访客们怎么去访问其他站点。”这个问题可以通过自定义字段来实现。让我们来看看怎么才能做到这点。
解决方案: 首先要做的是打开您的文件 functions.php,然后粘贴下面的代码:

  1. function print_post_title() {  
  2. global $post;  
  3. $thePostID = $post->ID;  
  4. $post_id = get_post($thePostID);  
  5. $title = $post_id->post_title;  
  6. $perm = get_permalink($post_id);  
  7. $post_keys = array(); $post_val = array();  
  8. $post_keys = get_post_custom_keys($thePostID);  
  9.    
  10. if (!emptyempty($post_keys)) {  
  11. foreach ($post_keys as $pkey) {  
  12. if ($pkey==’url1′ || $pkey==’title_url’ || $pkey==’url_title’) {  
  13. $post_val = get_post_custom_values($pkey);  
  14. }  
  15. }  
  16. if (emptyempty($post_val)) {  
  17. $link = $perm;  
  18. else {  
  19. $link = $post_val[0];  
  20. }  
  21. else {  
  22. $link = $perm;  
  23. }  
  24. echo ‘<h2><a href=”‘.$link.’” rel=”bookmark” title=”‘.$title.’”>  
  25. ‘.$title.’</a></h2>’;  
  26. }  

完成之后,打开文件index.php并替换输出的标准代码…

  1. <h2><a href=”<?php the_permalink() ?>” rel=”bookmark”  
  2. title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?>  
  3. </a></h2>  

… 用新创建的方面 print_post_title() :

  1. <?php print_post_title() ?>  

好了,当您需要指向处自己博客之外的文章,仅仅需要滚动您的编辑器的下方,创建或者选择自定义字段url1 或 title_url 或url_title,输入外部 URL 地址就可以了。

代码解释:这是一段非常友好的自定义功能替换 the_title()WordPress 函数。
基本上而言,这段功能跟老的the_title() 函数一样优秀,而且也是一个自定义字段。如果查找到字段url1 或 title_url或 url_title 的值,那么就会直接链接到外部站点而不是博客文章。如果自定义字段值没有找到,就会简单地显示链接本身。

嵌入自定义的CSS样式
问题: 某些文章可以需要额外的 CSS 样式。当然,您也可以选择 WordPress 的编辑器进入HTML 模式进行编辑,加入内置的样式到文章内容中。但即使内置样式是有效的,但这总不是最简单的处理方法。
用自定义字段,我们可以很容易地为个别文章创建新的 CSS 类,并自动加载它们到博客的 header 中。
解决方案:首先,打开文件 header.php ,然后哦插入如下的代码到 HTML 标签 跟 中:

  1. <?php if (is_single()) {  
  2. $css = get_post_meta($post->ID, ‘css’, true);  
  3. if (!emptyempty($css)) { ?>  
  4. <style type=”text/css”>  
  5. <?php echo $css; ?>  
  6. <style>  
  7. <?php }  
  8. } ?>  

现在,当您发布帖子或者页面的时候只要请求这个自定义 CSS 样式,仅仅是创建自定义字段 css并粘贴到您的自定义样式中。就这么简单!
代码解释:首先,上面的代码用WordPress的条件式标记 is_single() 确保我们实际上是在文章页面操作。然后它会寻找自定义字段 css。如果找到,它的值会在标记 之间显示。
重定义title标签
问题:对于博客,就想其他所有类型的网站一样,内容为王。而SEO对您的目标流量是至关重要的。WordPress主题的默认值是没有对标签 做过优化的。
某些插件,如众所周知的“All in One SEO Pack”重写了这个,但您依然可以通过自定义字段来解决。
解决方案:打开文件 header.php 并编辑。找到标签 tag 并替换下面的代码:

  1. <title><?php if (is_home () ) {  
  2. bloginfo(’name’);  
  3. elseif ( is_category() ) {  
  4. single_cat_title(); echo ‘ - ‘ ; bloginfo(’name’);  
  5. elseif (is_single() ) {  
  6. $customField = get_post_custom_values(”title”);  
  7. if (isset($customField[0])) {  
  8. echo $customField[0];  
  9. else {  
  10. single_post_title();  
  11. }  
  12. elseif (is_page() ) {  
  13. bloginfo(’name’); echo ‘: ‘; single_post_title();  
  14. else {  
  15. wp_title(”,true);  
  16. } ?>  
  17. </title>  

然后,如果您想自定义 title 标签,简单地创建自定义字段 title, 并为它赋值就可以了。
代码解释: 通过这段代码,我为各个类别的帖子,如首页,分页,目录页及博客文章用不同标记模板生成一个自定义 。
如果当前活动的页面是篇博客文章,代码会寻找自定义字段 title。如果找到了,就会显示自定义字段中的值,反之,显示标准的 single_post_title() 生成的标题。
禁止搜索引擎搜索博客文章
问题: 您是否曾想过创建一篇半隐私文章,允许普通读者访问,而不是搜索引擎?如果是这样的话,最简单的解决方案是…您肯定猜到了!用自定义字段。
解决方案:首先,获取您不想被搜索引擎索引的文章的ID号。我们以ID为17的作个范例。
打开文件 header.php 粘贴下面的代码到标签 and 中:

  1. <?php $cf = get_post_meta($post->ID, ‘noindex’, true);  
  2. if (!emptyempty($cf)) {  
  3. echo ‘<meta name=”robots” content=”noindex”/>’;  
  4. }  
  5. ?>  

仅此而已,这对于您不想将某些信息被搜索引擎索引到的是非常有用的!
代码解释: 在这个示例中,我们使用 get_post_meta() 方法来检索自定义字段 noindex。如果值设置了,那么添加标记 。
用自定义函数轻松地获取或者打印自定义字段值
问题:现在我们已经展示给了您不少优秀地怎么应用自定义字段的方法,那么怎样才能轻松地用自动化的函数来获取自定义字段值呢?
对于程序员或者对PHP比较熟悉的人员来说,获取自定义值并不是什么困难的事,但对于非程序员而言却非常痛苦。通过这个方法,获得任何自定义字段值从未如此简单。
解决方案:粘贴到您的主题文件 functions.php 中。如果主题中没有这个文件,那么就请创建它。

  1. function get_custom_field_value($szKey$bPrint = false) {  
  2. global $post;  
  3. $szValue = get_post_meta($post->ID, $szKey, true);  
  4. if ( $bPrint == false ) return $szValueelse echo $szValue;  
  5. }  

好了,通过下面的代码来调用这个方法就会获得自定义字段的值:

  1. <?php if ( function_exists(’get_custom_field_value’) ){  
  2. get_custom_field_value(’featured_image’, true);  
  3. } ?>  

代码解释: 首先,我们使用 PHP 的函数 function_exists() 判断是否存在 get_custom_field_value 方法是否已经在主题中定义过了。如果存在,我们就可以使用。第一个参数是自定义字段名称 (这里是, featured_image), 第二个参数是允许您直接输出值 (true) 或者以备作为之后的PHP 使用 (false).
在你想要的文章里面插入Dig按钮
问题:从众所周知的 Digg.com 中获得点击量的最好的方法是将“Digg this”按钮添加到您的每一篇文章中,浏览者可以协助您成功发布这篇文章。
但是,对于您的所有博客都采用这个按钮?当然不是。例如,如果您撰写了一条关于来改善您的网站的声明,提交到Digg服务,那是毫无价值的。
解决方案:再次请求自定义字段完成。只要根据下列的步骤开始就可以了:
1. 打开您的文件 single.php 并将这些行粘贴到您想显示“Digg this”按钮的地方:

  1. <?php $cf = get_post_meta($post->ID, ‘digg’, true);  
  2. if (!emptyempty($cf)) {  
  3. echo ‘http://digg.com/tools/diggthis.js” type=”text/javascript”>’} ?>  

2. 一旦您保存了文件 single.php , 您就可以创建自定义字段 digg 并可以赋任意值。如果赋值,按钮就会显示在文章中。
代码解释:这段代码非常简单。在自定义代码上找到自定义字段 digg, 代码显示“Digg this” 按钮。Digg本身提供JavaScript 用户显示“Digg this” 按钮。
其实上面所列的方法很多我们可能不知不觉中都已经用上了,比如说很多人都有自定义title,tags,description,网上都有提供现成代码,还有一些文章缩略图等功能(现在已经有插件支持了)。
当然针对缩略图我们一样可以用自定义自段:
1. 通过 Photoshop 或 Gimp 开始创建一张默认图片。我的示例图片大小是 200×200 像素,这由您自己决定。命名为 default.gif.
2. 上传图片 default.gif 至您的主题文件夹 image 中。
3. 打开文件 index.php ,粘贴下列代码至您想显示缩略图的地方:

  1. <?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);  
  2. if ($postimageurl) {  
  3. ?>  
  4. <a href=”<?php the_permalink(); ?>” rel=”bookmark”>  
  5. <img src=”<?php echo $postimageurl; ?>” alt=”Post Pic” width=”200″  
  6. height=”200″ /></a>  
  7. <?php } else { ?>  
  8. <a href=”<?php the_permalink(); ?>” rel=”bookmark”>  
  9. <img src=”<?php bloginfo(’template_url’); ?>/images/wprecipes.gif”  
  10. alt=”Screenshot” width=”200″ height=”200″ /></a>  
  11. <?php } ?>  

4. 保存文件。
5. 在您的每篇博文中创建自定义字段 post-img。可以给每张您想显示的缩略图设置URL值。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar
工作两年后感悟的《大话西游》
命运爱情之六 战友
被禁忌的游戏评论: 我是否该写一篇悲伤的乐评
阿甘的爱情

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:34   其中:访客  0   博主  1

    • avatar 两天 Admin

      看上去是不错。。。 :mrgreen: