10个高级WordPress自定义字段技巧
创始人
2024-07-29 19:50:23
0

但WordPress早已不是一个流行的博客程序,而是一个方便的建站程序。稍复杂一点的站点,几乎避不可少的要使用到自定义字段,比如做个产品网站,要录入产品的各种参数,你也可以选择在文章内容中直接录入,但那缺乏灵活性,不方便扩展。

下面则是10个比较高级的WordPress自定义字段使用技巧,说是高级,其实也未必,代码并不复杂,只是可能你会没想到这样弄,所以,WP开发者朋友看看还是有好处的。

1. 给帖子设定时间期限

问题:有时候 (例如, 您正在管理一篇辩论搞), 您希望发布一篇文章,然后在一个固定的时间自动关闭文章显示。这看起来很不容易,但事实绝非如此,您有自定义字段的权利。

解决方案:编辑您的主题,用下面的“hacked” 循环来替换当前 WordPress 中的循环:

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

创建一篇文章在一个固定的时间或日期之后过期,您所需要的仅仅是自定义一个字段。指定一个关键字标识 expiration 为日期或者时间格式 (必须为 mm/dd/yyyy 00:00:00)。在这个时间之后这篇文章就不显示了。

代码解释:这段代码简单的 WordPress 循环会自动查询是否存在有自定义字段叫 expiration。如果存在,对比自定义时间跟当前的时间。

2. 确定如何使博客文章显示在首页

问题:我总是想知道为什么有 95% 的博客选择在博客首页中全文显示发布过的 所有/em> 文章。当然,WordPress 中并没有默认的内置选项来告诉您如何显示一篇文章。但是等等:通过自定义字段我们就可以很容易地实现。

解决方案:下面的技巧可以帮组您定义如何显示文章在您的首页。这两个值是需要用到的:

全文浏览

仅显示摘要

我们会再一次用到自定义 WordPress 循环。在您的 index.php 文件中找到循环,然后用下面的代码来替换:

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

在这段代码中,摘要作为默认显示项。为了在您的博客首页中显示全文,那么您需要简单地编辑文章,给自定义字段 full 赋一个任意值。

代码解释:这段代码更加简单。首先,创建一个类似 full 的自定义字段,如果被赋值,那么显示全文,反之,显示摘要。

如果当前日期或时间等于或者大于自定义字段 expiration 中的值,那么这篇文章就不会显示了。注意,这段代码不会删除或取消您的文章的发布,仅仅是通过循环不让文章显示。

3.心情显示以及当前收听的歌曲

问题:大概在五六年钱,我的博客是通过一个叫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];  

保存文件。好了,当您新撰写一篇文章的时候,就创建一个自定义字段,叫做 mood, 然后输入您当前的心情。

代码解释:自定义字段方法非常简单,这个跟众所周知的,在首页的摘要旁显示您的缩略图的方法没有多大区别。看来仅需要类似 mood 这样的自定义字段,如果设置了值,那么就显示。

4. 给您的文章添加Meta描述符

问题:WordPress, 令人惊讶的是,不使用描述标签的作为meta预设值。

当然,对于seo来说,现在的meta标签已经没有以前那么重要了。然而,尽管如此,它们依然可以提高您的博客在搜索引擎中的排名。

如何又是使用自定义字段来创建描述单独帖子的meta描述呢?

解决方案:打开文件 header.php。复制下面的代码到 和 标签内。

  1. echo ('Your main description goes here');  
  2. } elseif(is_category()) {  
  3. echo category_description();  
  4. } elseif(is_tag()) {  
  5. echo '-tag archive page for this blog' . single_tag_title();  
  6. } elseif(is_month()) {  
  7. echo 'archive page for this blog' . the_time('F, Y');  
  8. } else {  
  9. echo get_post_meta($post->ID, "Metadescription", true);  
  10. }?>"> 

代码解释:为了生成 meta 的描述语,这里采用的是 WordPress 中广泛采用的条件式标签来决定哪些用户会访问这个页面。

目录页,标签页,存档页及站点首页,使用的都是静态 meta 描述语。编辑行3,7,9来定义您自己的页面。这样,在文章中,代码会寻找自定义字段 Metadescription,并将其中的值作为 meta 描述语。

5. 链接到外部资源

问题:很多博客们都问过我下面的问题:“我如何直接链接到外部来源,而不是创建一个帖子,仅仅是为了告诉访客们怎么去访问其他站点。”

这个问题可以通过自定义字段来实现。让我们来看看怎么才能做到这点。

解决方案:首先要做的是打开您的文件 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. if (!emptyempty($post_keys)) {  
  10. foreach ($post_keys as $pkey) {  
  11. if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {  
  12. $post_val = get_post_custom_values($pkey);  
  13. }  
  14. }  
  15. if (emptyempty($post_val)) {  
  16. $link = $perm;  
  17. } else {  
  18. $link = $post_val[0];  
  19. }  
  20. } else {  
  21. $link = $perm;  
  22. }  
  23. echo '

    '.$title.'

    ';  

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

 

  1. ” rel=”bookmark” title=”Permanent Link to ”>

     

 

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

 

  1.  

 

好了,当您需要指向处自己博客之外的文章,仅仅需要滚动您的编辑器的下方,创建或者选择自定义字段 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 标签 跟 中:

  1. $css = get_post_meta($post->ID, 'css', true);  
  2. if (!emptyempty($css)) { ?>  
  3.  
  4.