自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

10個(gè)高級(jí)WordPress自定義字段技巧

開發(fā)
本文介紹了10個(gè)比較高級(jí)的WordPress自定義字段使用技巧,說是高級(jí),其實(shí)也未必,代碼并不復(fù)雜,只是可能你會(huì)沒想到這樣弄,所以,WP開發(fā)者朋友看看還是有好處的。

但WordPress早已不是一個(gè)流行的博客程序,而是一個(gè)方便的建站程序。稍復(fù)雜一點(diǎn)的站點(diǎn),幾乎避不可少的要使用到自定義字段,比如做個(gè)產(chǎn)品網(wǎng)站,要錄入產(chǎn)品的各種參數(shù),你也可以選擇在文章內(nèi)容中直接錄入,但那缺乏靈活性,不方便擴(kuò)展。

下面則是10個(gè)比較高級(jí)的WordPress自定義字段使用技巧,說是高級(jí),其實(shí)也未必,代碼并不復(fù)雜,只是可能你會(huì)沒想到這樣弄,所以,WP開發(fā)者朋友看看還是有好處的。

1. 給帖子設(shè)定時(shí)間期限

問題:有時(shí)候 (例如, 您正在管理一篇辯論搞), 您希望發(fā)布一篇文章,然后在一個(gè)固定的時(shí)間自動(dòng)關(guān)閉文章顯示。這看起來很不容易,但事實(shí)絕非如此,您有自定義字段的權(quán)利。

解決方案:編輯您的主題,用下面的“hacked” 循環(huán)來替換當(dāng)前 WordPress 中的循環(huán):

  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. ?> 

創(chuàng)建一篇文章在一個(gè)固定的時(shí)間或日期之后過期,您所需要的僅僅是自定義一個(gè)字段。指定一個(gè)關(guān)鍵字標(biāo)識(shí) expiration 為日期或者時(shí)間格式 (必須為 mm/dd/yyyy 00:00:00)。在這個(gè)時(shí)間之后這篇文章就不顯示了。

代碼解釋:這段代碼簡單的 WordPress 循環(huán)會(huì)自動(dòng)查詢是否存在有自定義字段叫 expiration。如果存在,對(duì)比自定義時(shí)間跟當(dāng)前的時(shí)間。

2. 確定如何使博客文章顯示在首頁

問題:我總是想知道為什么有 95% 的博客選擇在博客首頁中全文顯示發(fā)布過的 所有/em> 文章。當(dāng)然,WordPress 中并沒有默認(rèn)的內(nèi)置選項(xiàng)來告訴您如何顯示一篇文章。但是等等:通過自定義字段我們就可以很容易地實(shí)現(xiàn)。

解決方案:下面的技巧可以幫組您定義如何顯示文章在您的首頁。這兩個(gè)值是需要用到的:

全文瀏覽

僅顯示摘要

我們會(huì)再一次用到自定義 WordPress 循環(huán)。在您的 index.php 文件中找到循環(huán),然后用下面的代碼來替換:

  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. ?> 

在這段代碼中,摘要作為默認(rèn)顯示項(xiàng)。為了在您的博客首頁中顯示全文,那么您需要簡單地編輯文章,給自定義字段 full 賦一個(gè)任意值。

代碼解釋:這段代碼更加簡單。首先,創(chuàng)建一個(gè)類似 full 的自定義字段,如果被賦值,那么顯示全文,反之,顯示摘要。

如果當(dāng)前日期或時(shí)間等于或者大于自定義字段 expiration 中的值,那么這篇文章就不會(huì)顯示了。注意,這段代碼不會(huì)刪除或取消您的文章的發(fā)布,僅僅是通過循環(huán)不讓文章顯示。

3.心情顯示以及當(dāng)前收聽的歌曲

問題:大概在五六年錢,我的博客是通過一個(gè)叫LiveJournal的平臺(tái)來運(yùn)行的。當(dāng)然,這個(gè)遠(yuǎn)遠(yuǎn)沒有WordPress優(yōu)秀,但它有一個(gè)非常好的特征是WordPress所沒有的。例如,它允許用戶來顯示當(dāng)他們?cè)谧珜懖┛蜁r(shí)的心情和正在收聽的音樂。

盡管我沒有把這些特征應(yīng)用到我的博客中,我想很多博客們對(duì)這個(gè)在WordPress中的應(yīng)用還是會(huì)非常感興趣的。

解決方案:打開您的文件 single.php (或者修改您的文件 index.php ), 并將下面的代碼粘貼到您想要的任意一個(gè)循環(huán)中:

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

保存文件。好了,當(dāng)您新撰寫一篇文章的時(shí)候,就創(chuàng)建一個(gè)自定義字段,叫做 mood, 然后輸入您當(dāng)前的心情。

代碼解釋:自定義字段方法非常簡單,這個(gè)跟眾所周知的,在首頁的摘要旁顯示您的縮略圖的方法沒有多大區(qū)別。看來僅需要類似 mood 這樣的自定義字段,如果設(shè)置了值,那么就顯示。

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

問題:WordPress, 令人驚訝的是,不使用描述標(biāo)簽的作為meta預(yù)設(shè)值。

當(dāng)然,對(duì)于seo來說,現(xiàn)在的meta標(biāo)簽已經(jīng)沒有以前那么重要了。然而,盡管如此,它們依然可以提高您的博客在搜索引擎中的排名。

如何又是使用自定義字段來創(chuàng)建描述單獨(dú)帖子的meta描述呢?

解決方案:打開文件 header.php。復(fù)制下面的代碼到 <head> 和 </head>標(biāo)簽內(nèi)。

  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 中廣泛采用的條件式標(biāo)簽來決定哪些用戶會(huì)訪問這個(gè)頁面。

目錄頁,標(biāo)簽頁,存檔頁及站點(diǎn)首頁,使用的都是靜態(tài) meta 描述語。編輯行3,7,9來定義您自己的頁面。這樣,在文章中,代碼會(huì)尋找自定義字段 Metadescription,并將其中的值作為 meta 描述語。

5. 鏈接到外部資源

問題:很多博客們都問過我下面的問題:“我如何直接鏈接到外部來源,而不是創(chuàng)建一個(gè)帖子,僅僅是為了告訴訪客們?cè)趺慈ピL問其他站點(diǎn)。”

這個(gè)問題可以通過自定義字段來實(shí)現(xiàn)。讓我們來看看怎么才能做到這點(diǎn)。

解決方案:首先要做的是打開您的文件 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 '<h2><a href="'.$link.'" rel="bookmark" title="'.$title.'">'.$title.'</a></h2>';  

完成之后,打開文件 index.php 并替換輸出的標(biāo)準(zhǔn)代碼…

 

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

 

… 用新創(chuàng)建的方面 print_post_title() :

 

  1. <?php print_post_title() ?> 

 

好了,當(dāng)您需要指向處自己博客之外的文章,僅僅需要滾動(dòng)您的編輯器的下方,創(chuàng)建或者選擇自定義字段 url1 或 title_url 或 url_title ,輸入外部 URL 地址就可以了。

代碼解釋:這是一段非常友好的自定義功能替換 the_title() WordPress 函數(shù)。

基本上而言,這段功能跟老的 the_title() 函數(shù)一樣優(yōu)秀,而且也是一個(gè)自定義字段。如果查找到字段 url1 或 title_url 或 url_title 的值,那么就會(huì)直接鏈接到外部站點(diǎn)而不是博客文章。如果自定義字段值沒有找到,就會(huì)簡單地顯示鏈接本身。

6. 嵌入自定義的CSS樣式

問題:某些文章可以需要額外的 CSS 樣式。當(dāng)然,您也可以選擇 WordPress 的編輯器進(jìn)入html 模式進(jìn)行編輯,加入內(nèi)置的樣式到文章內(nèi)容中。但即使內(nèi)置樣式是有效的,但這總不是最簡單的處理方法。

用自定義字段,我們可以很容易地為個(gè)別文章創(chuàng)建新的 CSS 類,并自動(dòng)加載它們到博客的 header 中。

解決方案:首先,打開文件 header.php ,然后哦插入如下的代碼到 HTML 標(biāo)簽<head> 跟 </head>中:

  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. } ?> 

7. 重定義The <title>標(biāo)簽

問題:對(duì)于博客,就想其他所有類型的網(wǎng)站一樣,內(nèi)容為王。而SEO對(duì)您的目標(biāo)流量是至關(guān)重要的。wordpress主題的默認(rèn)值是沒有對(duì)標(biāo)簽 <title> 做過優(yōu)化的。

某些插件,如眾所周知的“All in One SEO Pack”重寫了這個(gè),但您依然可以通過自定義字段來解決。

解決方案:打開文件 header.php 并編輯。找到標(biāo)簽 <title> tag 并替換下面的代碼:

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

然后,如果您想自定義 title 標(biāo)簽,簡單地創(chuàng)建自定義字段 title, 并為它賦值就可以了。

代碼解釋:通過這段代碼,我為各個(gè)類別的帖子,如首頁,分頁,目錄頁及博客文章用不同標(biāo)記模板生成一個(gè)自定義 。

如果當(dāng)前活動(dòng)的頁面是篇博客文章,代碼會(huì)尋找自定義字段 title。如果找到了,就會(huì)顯示自定義字段中的值,反之,顯示標(biāo)準(zhǔn)的 single_post_title() 生成的標(biāo)題。

8. 禁止搜索引擎搜索博客文章

問題:您是否曾想過創(chuàng)建一篇半隱私文章,允許普通讀者訪問,而不是搜索引擎?如果是這樣的話,最簡單的解決方案是…您肯定猜到了!用自定義字段。

解決方案:首先,獲取您不想被搜索引擎索引的文章的ID號(hào)。我們以ID為17的作個(gè)范例。

打開文件 header.php 粘貼下面的代碼到標(biāo)簽 <head>和</head>中:

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

僅此而已,這對(duì)于您不想將某些信息被搜索引擎索引到的是非常有用的!

代碼解釋:在這個(gè)示例中,我們使用 get_post_meta() 方法來檢索自定義字段 noindex。如果值設(shè)置了,那么添加標(biāo)記 。

9. 用自定義函數(shù)輕松地獲取或者打印自定義字段值

問題:現(xiàn)在我們已經(jīng)展示給了您不少優(yōu)秀地怎么應(yīng)用自定義字段的方法,那么怎樣才能輕松地用自動(dòng)化的函數(shù)來獲取自定義字段值呢?

對(duì)于程序員或者對(duì)PHP比較熟悉的人員來說,獲取自定義值并不是什么困難的事,但對(duì)于非程序員而言卻非常痛苦。通過這個(gè)方法,獲得任何自定義字段值從未如此簡單。

解決方案:將一下代碼方法粘貼到您的主題文件 functions.php 中。如果主題中沒有這個(gè)文件,那么就請(qǐng)創(chuàng)建它。

  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;  

好了,通過下面的代碼來調(diào)用這個(gè)方法就會(huì)獲得自定義字段的值:

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

代碼解釋:首先,我們使用 PHP 的函數(shù) function_exists() 判斷是否存在 get_custom_field_value 方法是否已經(jīng)在主題中定義過了。如果存在,我們就可以使用。***個(gè)參數(shù)是自定義字段名稱 (這里是, featured_image), 第二個(gè)參數(shù)是允許您直接輸出值 (true) 或者以備作為之后的PHP 使用 (false)。

10.根據(jù)需要隨時(shí)添加Digg按鈕

問題:從眾所周知的 Digg.com 中獲得點(diǎn)擊量的***的方法是將“Digg this”按鈕添加到您的每一篇文章中,瀏覽者可以協(xié)助您成功發(fā)布這篇文章。

但是,對(duì)于您的所有博客都采用這個(gè)按鈕?當(dāng)然不是。例如,如果您撰寫了一條關(guān)于來改善您的網(wǎng)站的聲明,提交到Digg服務(wù),那是毫無價(jià)值的。

解決方案:再次請(qǐng)求自定義字段完成。只要根據(jù)下列的步驟開始就可以了:

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 , 您就可以創(chuàng)建自定義字段 digg 并可以賦任意值。如果賦值,按鈕就會(huì)顯示在文章中。

代碼解釋:這段代碼非常簡單。在自定義代碼上找到自定義字段 digg, 代碼顯示“Digg this” 按鈕。Digg本身提供JavaScript 用戶顯示“Digg this” 按鈕。

【編輯推薦】

  1. 深度剖析WordPress主題結(jié)構(gòu)
  2. 三種直接備份WordPress博客數(shù)據(jù)庫的方法
  3. 7.1.2 利用WordPress的內(nèi)置編輯器
  4. BLOG啟示錄——WordPress博客建設(shè)與經(jīng)營
  5. WordPress獲得2009開源PHP項(xiàng)目亞軍
責(zé)任編輯:于鐵 來源: 帕蘭映像
相關(guān)推薦

2019-06-10 10:08:16

Windows 10Windows鼠標(biāo)指針

2011-07-07 10:21:56

2018-04-18 15:50:08

Windows 10桌面圖標(biāo)

2012-02-09 10:58:35

Java

2010-09-01 08:35:07

Visual Stud

2009-04-23 09:05:08

IE8llq自定義功能

2022-06-21 14:30:16

Vim自定義Linux

2010-02-25 11:23:29

WCF返回自定義格式

2015-02-12 15:33:43

微信SDK

2009-07-20 13:47:08

iBATIS.NET字

2015-02-12 15:38:26

微信SDK

2015-11-27 14:04:00

微軟Windows 10

2016-12-26 15:25:59

Android自定義View

2009-06-17 14:13:10

Eclipse常用技巧

2009-06-22 15:07:45

原則和技巧JSF自定義復(fù)合組件

2012-11-19 11:07:42

IBMdw

2018-12-27 09:30:04

Windows 10自定義配置

2011-12-16 14:23:51

Java

2015-01-14 15:06:48

定義相機(jī)

2009-06-08 20:13:36

Eclipse自定義控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)