简单就是美,默默的一些小杂碎。
« »

在 WordPress 一个自定义字段中存放多个值

WordPress 自定义字段可以实现很多功能,比如实现文章缩略图。我今天遇到了一个问题,如何将相关的两个信息放到一个自定义域中,然后提取出来分别使用。网络上大部分文章都是针对一个自定义域中只有一个值的情况写的,对存放多个值并提取使用的情况大部分都没有提及。我对 PHP 只是有一点点了解,研究了一下午才搞定这个问题。

下面以我的需求为例来演示如何在 WordPress 的一个自定义字段存放多个值并提取使用。我博客的文章分为两类,一类是翻译的,一类是原创的。如果是原创的文章,就在“日志信息”中注明为“本站原创文章”,如果是翻译的,就在“日志信息”中注明来源网站的名称,并超链接过去。我使用了上面的函数来完成这个工作。

function article_source() {
    global $post;
    $article_source = get_post_meta($post->ID, article_source,false);
    if($article_source) { 
        foreach ($article_source as $article_sources){
            $fullValue = explode ("|", $article_sources);
            $name = $fullValue[0];
            $address = $fullValue[1];
        }
        echo '翻译来源:<a href="'.$address.'" target="_blank">'.$name.'</a>,';
    } 
    else { 
        echo '本文为本站原创,';
    }
}

将上面的代码复制到 WordPress 主题目录的 functions.php 中,然后在合适的地方调用这个函数即可。对于翻译的文章,需要给文章添加一个名称为 article_source 的自定义域,里面存放两个值,方式为“网站名|文章地址”。原创的文章则不添加这个自定义域。

下面简单解释一下这段代码。get_post_meta() 这个函数会调用指定自定义域中的值,通过其参数我们可以控制是作为一个字符串调用还是作为一个数组调用以便接下来的处理,详细的用法请参见函数的说明。我这里使用 false 参数将函数设定为作为数组提取。接下来使用 foreach 语句遍历数组,讲结果存放到一个新的变量中,再用 explode 语句以“|” 符号为标记对其进行切割。最后就是把切割开的值分别存放到两个新的变量中以供提取使用。

有了这个例子,你就可以很方便的修改上面给出的代码来实现自己需要的功能了。

日志信息 »

该日志于2010-01-07 17:57由 默默 发表在博客技术分类下,本文为本站原创, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

18条评论

  1. interjc 说:

    这算不算沙发

  2. cosbeta 说:

    哇靠,这么高级的技术啊

  3. HC 说:

    恩恩,这个不错,终于开工了~~

  4. Epile 说:

    你好,我更改了博客的域名,请帮忙修改友链

  5. orzFly 说:

    默默啊,
    您老多久没更新过了?

  6. 宁波SEO 说:

    技术问题支持,学习了。

  7. 百毒博客 说:

    抗议有人和我做对,抢我沙发,夺我板凳,本尊拒绝坐地板!

  8. 百毒博客 说:

    我一个月来的时候是这篇文章,一个月后我又来,看到的现在还是这篇文章。你很忙啊,好久没更新了哦。

发表评论 »

返回顶部