隨著WordPress的功能越來越強(qiáng)大,我們幾乎可以使用WordPress來做任何想做的事(似乎有點(diǎn)夸張了⊙﹏⊙b汗)。
很多時(shí)候,也許我們并不需要在一篇文章中調(diào)用另一篇文章或單頁面的內(nèi)容(至少大多數(shù)人不需要這樣做);但是這并不是讓我們放棄WordPress強(qiáng)大功能的理由。
我們可以拿WordPress來開發(fā)一個(gè)電子商務(wù)網(wǎng)站,或者來做一個(gè)大型的門戶網(wǎng)站,這些都不成問題。我們遇到的問題可能是,一些通用的內(nèi)容如何在 每個(gè)文章頁面中顯示出來?比如電子商務(wù)網(wǎng)站中的購買須知、產(chǎn)品介紹、公司介紹等(每個(gè)單獨(dú)的產(chǎn)品可能都具有一些共同的介紹),是否意味著我們每次都要單獨(dú) 添加這些內(nèi)容呢?那我們維護(hù)起來將會(huì)是一項(xiàng)很龐大的工程。
如果我們可以在WordPress文章中調(diào)用到另一個(gè)頁面的內(nèi)容,那問題不就解決了嗎?事實(shí)上,我就是這么做的。
思路就是利用了WordPress的自定義欄目這個(gè)功能,在需要調(diào)用的文章下面添加一個(gè)指定的自定義欄目(默認(rèn)的)和值(需要調(diào)用的那個(gè)page的別名)。
好了,直接上代碼:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1<?php the_title(); ?></h1>
<?php
the_content();//正常日志內(nèi)容
$key = "fireuikey";//自定義欄目名稱
$fireuiinfo = get_post_meta($post->ID, $key , true);
if ($fireuiinfo != ''):$fireui_com_key = array('pagename' => $fireuiinfo);//pagename就是需要調(diào)用的那個(gè)頁面的別名,必須是英文
query_posts($fireui_com_key);
if (have_posts()) : while(have_posts()) : the_post(); the_content(); endwhile; endif;
wp_reset_query();
endif;
endwhile;
endif;
?>
因?yàn)楫?dāng)初做這個(gè)項(xiàng)目比較急,因此代碼可能會(huì)比較草率,或者還有其他的方法。但,至少可以肯定的是,我所使用的這個(gè)方法到目前為止一直使用良好。
使用方法,上面的代碼替換single.php中的主循環(huán)部分(當(dāng)然,你可以根據(jù)你模板的實(shí)際情況進(jìn)行調(diào)用和添加樣式)。添加文章時(shí),同時(shí)添加一個(gè) 自定義欄目,欄目名稱為”fireuikey”(可以換成任何你喜歡的變量名稱,需要同步修改上面的代碼!),值就填寫需要被調(diào)用的page的別名(英 文)。如果自定義欄目為空或者不添加,那么將不會(huì)執(zhí)行調(diào)用,默認(rèn)文章也會(huì)完美呈現(xiàn)。
更多信息請(qǐng)查看IT技術(shù)專欄