久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

WordPress:Using Custom Fields

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

WordPress能夠使文章作者給文章配置自定義區(qū)。這個(gè)任意的額外信息,稱之為meta-data。這個(gè)meta-data可以包含以下的信息:

  • 情緒: 開心
  • 當(dāng)前閱讀: 灰姑娘
  • 聆聽: 鐘的搖擺
  • 天氣: 悶熱潮濕

擁有了一些額外的編碼后,有可能歸檔更多的更加復(fù)雜的活動(dòng),例如使用metadata來為一篇文章儲存一個(gè)有效期。

Meta-data是由關(guān)鍵詞/值來處理的。關(guān)鍵詞是meta-data元素的名稱。是每篇單獨(dú)的與這個(gè)信息相關(guān)的文章上的meta-data列表的上顯示的信息,

Keys可以在每篇文章中多次使用。例如,如果你正在閱讀兩本不同的書(可能工作時(shí),讀一本技術(shù)方面的書,在家的時(shí)候,讀一本小說),你可以創(chuàng)建一個(gè)"閱讀"關(guān)鍵詞并且在同一篇文章中兩次都使用這個(gè)關(guān)鍵詞,為每本書都使用一次。

出現(xiàn)在你的文章中的信息可能是什么樣的,下面是一個(gè)例子;

當(dāng)前閱讀: Calvin 和 Hobbes

當(dāng)日心情: 高興愉快

用法[ ]

根據(jù)上述的例子,讓我們來實(shí)施這個(gè)。我們會添加兩個(gè)自定義區(qū),一個(gè)稱作"當(dāng)前閱讀" 另一個(gè)稱作"當(dāng)日的心情"。以下的指示說明會指導(dǎo)你怎樣使用自定義區(qū)來將這個(gè)信息添加到一篇文章中。

  1. 你寫了文章后,下拉到標(biāo)題為自定義區(qū)的區(qū)域。
  2. 要?jiǎng)?chuàng)建一個(gè)新的稱之為"當(dāng)前閱讀"的自定義區(qū),在標(biāo)題為關(guān)鍵詞的文本輸入?yún)^(qū)輸入文本"當(dāng)前閱讀"(沒有引號)。
  3. 新創(chuàng)建的關(guān)鍵詞現(xiàn)在應(yīng)該有一個(gè),在這個(gè)例子中,是當(dāng)前閱讀的書名,"Calvin 和Hobbes"。在 區(qū)輸入"Calvin and Hobbes",仍然沒有引號。
  4. 點(diǎn)擊添加自定義區(qū)按鈕來將這篇文章的自定義信息保存下來。

要添加你的"當(dāng)日的心情",重復(fù)這個(gè)過程,并且添加"當(dāng)日的心情"到關(guān)鍵詞,同時(shí)在文本框中添加你的心情的描述,并且點(diǎn)擊保存來保存文章中的這個(gè)信息。

在你的下一篇文章中,你可以給你的meta-data添加一本新書和心情。在自定義區(qū)部分,關(guān)鍵詞現(xiàn)在顯示為一個(gè)下拉列表,這個(gè)列表上有先前輸入的自定義范圍。選擇"當(dāng)前閱讀"然后輸入你在中閱讀的新書。點(diǎn)擊添加自定義范圍然后重復(fù)這個(gè)過程來添加"當(dāng)日的心情"。

一次只要?jiǎng)?chuàng)建一個(gè)新的"關(guān)鍵詞",創(chuàng)建好了之后,如果你想的話,你可以為每篇文章的關(guān)鍵詞分配一個(gè)值。你可以為一篇文章的一個(gè)關(guān)鍵詞分配幾個(gè)。對于那些一次閱讀幾本書的人們,這個(gè)功能遲早會有用的。

顯示自定義范圍[ ]

給文章添加了一個(gè)自定義范圍之后,就是向世界顯示你的書本和心情的時(shí)候了。要為每篇文章顯示自定義范圍,使用the_meta()模板標(biāo)簽。標(biāo)簽必須放入The Loop中才可以運(yùn)行。許多人將the_meta()模板標(biāo)簽添加在他們的文章的最后部分,或者添加在他們的文章 Meta Data部分。下面是使用標(biāo)簽的一個(gè)基本的例子:

<?php the_meta(); ?>

在源代碼中,這個(gè)可能看起來像:

<ul class='post-meta'>
<li><span class='post-meta-key'>Curently Reading:</span> Calvin and Hobbes</li>
<li><span class='post-meta-key'>Today's Mood:</span> Jolly and Happy</li>
</ul>


模板標(biāo)簽自動(dòng)地將這個(gè)的meta-data放到一個(gè)CSS樣式中,稱為post-meta關(guān)鍵詞是在一個(gè)span中,稱為post-meta-key,這樣你可以在你的樣式表中將它設(shè)計(jì)。所有的這些內(nèi)容都在一個(gè)無序的列表中得到了顯示。


要自定義post-meta列表的外觀,就要改變你的樣式表的特征。例如,,讓我們給上面的例子添加一些樣式。樣式表元素看起來像:

.post-meta {font-variant: small-caps; color: maroon; }
.post-meta-key {color: green; font-weight: bold; font-size: 110%;  }
  • 當(dāng)前閱讀: Calvin 和 Hobbes
  • 當(dāng)日心情: 開心愉快

官方 WordPress 插件目錄中有許多WordPress插件,給顯示meta標(biāo)簽增添了一些好的功能。搜索Google上的自定義范圍插件會幫助你找到更多的插件。

自定義區(qū)的高級技術(shù)[ ]

下面是更多的關(guān)于得到并且自定義meta-data和自定義區(qū)的高級技術(shù)。

得到自定義區(qū)[ ]

使用get_post_meta()函數(shù),能夠得到meta值:

get_post_meta($post_id, $key, $single);

  • $post_id是mata值想指的文章的ID。使用$post->ID來得到文章的ID。
  • $key是一個(gè)字符串,包含了你想要的meta 值的名稱。
  • $single可以是true 或者false。如果設(shè)置為true,函數(shù)會返回一個(gè)單一的結(jié)果,作為一個(gè)字符串。如果設(shè)置為false,或者沒有設(shè)置,那么函數(shù)會返回一個(gè)自定義范圍的數(shù)組。

執(zhí)行詳細(xì)信息[ ]

PostMeta信息儲存在一個(gè)新的表格中,$wpdb->postmeta。這個(gè)表格有四個(gè)區(qū):

meta_id: 每篇文章的一個(gè)唯一的id
post_id: 這個(gè)metadata文章的ID
meta_key: '關(guān)鍵詞'的名稱
meta_value: 與關(guān)鍵詞相關(guān)的值


這個(gè)表格中的值被放進(jìn)了一個(gè)稱為$post_meta_cache的結(jié)構(gòu)多維數(shù)組,在$posts數(shù)組被引進(jìn)wp-blog-header.php之后。這個(gè)變數(shù)只包括那些尋求當(dāng)前創(chuàng)建的網(wǎng)頁的文章的列表的值。數(shù)組的結(jié)果可能看起來像:

 [
   postid1 => [
     [
       key1 => [val1, val2, ...],
       key2 => [val1, val2, ...],
       ...
     ],
   postid2 => [ ... ],
   ...
 ]

因此,如果你想要從文章號256中提取"reading"值,你使用這個(gè)PHP編碼:


// 為我所閱讀的內(nèi)容找到一組值:

 $readinglist = $post_meta_cache[256]['reading'];

:不要忘了$readinglist會是一個(gè)數(shù)組,而不是一個(gè)單一的值。

:從WordPress2.1起,$post_meta_cache上不再有meta值。從下面提到的函數(shù)中得到meta值

PostMeta 函數(shù)[ ]

內(nèi)部函數(shù)[ ]

這些函數(shù)將在The Loop內(nèi)部使用,而且這些函數(shù)都返回?cái)?shù)組。


get_post_custom()
得到當(dāng)前文章的所有的關(guān)鍵詞/值數(shù)據(jù)。
get_post_custom_keys()
得到當(dāng)前文章的所有關(guān)鍵詞名稱的列表。
get_post_custom_values($key)
得到當(dāng)前文章的一個(gè)特別的關(guān)鍵詞的值的列表。
get_post_meta($post_id, $key, $single = false)
在WP1.5以及更高的版本中,這個(gè)函數(shù)返回了meta信息,但是不會產(chǎn)生高速緩存問題。函數(shù)需要文章id,關(guān)鍵詞,如果$single設(shè)置為真的,它只會返回PHP使用的第一個(gè)結(jié)果(不是作為一個(gè)數(shù)組)。
這個(gè)會產(chǎn)出作為結(jié)果的meta值 (注意添加的"echo"):

<?php $key="mykey"; echo get_post_meta($post->ID, $key, true); ?>

模板函數(shù)[ ]

寫這個(gè)的時(shí)候,只有一個(gè)模板函數(shù)。

the_meta()
輸出一個(gè)無序的列表,這個(gè)列表包含有當(dāng)前的文章的meta-data,有一類是關(guān)于UL的post-meta和LI的post-meta-key。


我們期望獨(dú)立的開發(fā)者能夠提出許多插件形式的文章meta-data的有趣的用法。the_meta()模板函數(shù)只是一個(gè)特別的基本的例子。

這時(shí),你只能夠添加和刪除文章。以后會給你更改當(dāng)前文章的權(quán)限。