「自定義欄位」是wordpress自帶的功能
函數:add_meta_boxes()
自定義欄位工作機制
WordPress 自定義欄位通常有兩個的變數:鍵 ( key ) 和值 ( value )。比如你想顯示你寫日誌當時的心情,你可以把鍵叫做 「mood」(心情),顯然在這裡值就是 「高興」 或者 「憤怒」。
通過後台添加的自定義欄目對應數據存放位置在wp_postmeta數據表中
一個自定義欄目可以對應多個值及獲取方法
如何創建隱藏的自定義欄目
當我們為某篇日誌或者頁面創建一個自定義欄位的時候,我們所寫的信息將會存儲到該日誌或者頁面中。換句話說,我們所創建的自定義欄位的的數據是屬於當前的日誌或者頁面,所以我們能夠顯示當前日誌或者頁面相關的自定義欄位信息。
如何使用自定義欄位
即如何在博客上顯示自定義欄位的數據。
方法1:
使用 the_meta()
這個模版函數,它會自動輸出一個無序的列表,如下所示:
- Key1: Value of 「Key1″
- Key2: Value of 「Key2″
- Key3: Value of 「Key3″
方法2:
使用 get_post_meta
()
這個模版函數。這個函數能夠能按照自己的需求列出自定義欄位
在模板文件中,加入:
<p>點擊查看演示:<?php echo get_post_meta($post->ID, '演示地址', true); ?></p>
補充:get_post_meta
<?php $meta_name = get_post_meta($post->ID, $key, $single); ?>
參數
- $post->ID (整數)要添加自定義欄目文章的ID
- $key (字元串) 必須是此自定義欄目的名稱
- $single (布爾型) (可選) 如果設為true, 則返回單個的自定義欄目的值。如果設為false, 則返回一個數組字元串型,即多個自定義欄目的值。
<table border="1"> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table>
$post_id | |
$post_id | (int) (Required) Post ID. |
$key | (string) (Optional) The meta key to retrieve. By default, returns data for all keys. Default value: 」 |
$single | (bool) (Optional) Whether to return a single value. This parameter has no effect if $key is not specified. Default value: false |
$post->ID (整數)要添加自定義欄目文章的ID
$key (字元串) 必須是此自定義欄目的名稱
$single (布爾型) (可選) 如果設為true, 則返回單個的自定義欄目的值。如果設為false, 則返回一個數組字元串型,即多個自定義欄目的值。
(mixed)
這個函數返回值比較複雜:
[list]
如果只設置了 $post_id 的值,返回該日誌的所有自定義欄位的關聯數組。
如果 $single 設置為 false 或者留空,返回指定 key 的所有值的一個數組。
如果 $single 設置為 true,返回指定 key 的第一個值(並且不是在一個數組中)。
如果沒有東西可以返回的時候,返回空數組,除非 $single 設置為 true ,則返回空字元串。
還有一種特殊情況就是,自定義欄位的值是序列化的數組,這樣 $single 設置為 true,則返回未序列化的數組,而 $single 設置為 false 或者留空,則你會獲取一個數組,其中的一個值是序列化之後的字元串,你需要使用 maybe_unserialize 函數將其解析成數組。
get_post_meta()需要用到當前文章ID,可以通過全局變數$post->ID獲取
如何使用update_post_meta()方法更新自定義欄目
如何使用delete_post_meta()方法刪除自定義欄