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