隨着 WordPress 的功能越來越強大,我們幾乎可以使用 WordPress 來做任何想做的事 (似乎有點誇張了⊙﹏⊙b 汗) 。

很多時候,也許我們並不需要在一篇文章中調用另一篇文章或單頁面的內容 (至少大多數人不需要這樣做);但是這並不是讓我們放棄 WordPress 強大功能的理由。

我們可以拿 WordPress 來開發一個電子商務網站,或者來做一個大型的門户網站,這些都不成問題。我們遇到的問題可能是,一些通用的內容如何在每個文章頁面中顯示出來?比如電子商務網站中的購買須知、產品介紹、公司介紹等 (每個單獨的產品可能都具有一些共同的介紹),是否意味着我們每次都要單獨添加這些內容呢?那我們維護起來將會是一項很龐大的工程。

如果我們可以在 WordPress 文章中調用到另一個頁面的內容,那問題不就解決了嗎?事實上,我就是這麼做的。

思路就是利用了 WordPress 的自定義欄目這個功能,在需要調用的文章下面添加一個指定的自定義欄目 (默認的) 和值 (需要調用的那個 page 的別名) 。

好了,直接上代碼:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1<?php the_title(); ?></h1>
<?php
    the_content();//正常日誌內容
    $key = "fireuikey";//自定義欄目名稱
    $fireuiinfo = get_post_meta($post->ID, $key , true);
        if ($fireuiinfo != ''):$fireui_com_key = array('pagename' => $fireuiinfo);//pagename 就是需要調用的那個頁面的別名,必須是英文
        query_posts($fireui_com_key);
            if (have_posts()) : while(have_posts()) : the_post(); the_content(); endwhile; endif;
        wp_reset_query();
        endif;
endwhile;
endif;
?>

因為當初做這個項目比較急,因此代碼可能會比較草率,或者還有其他的方法。但,至少可以肯定的是,我所使用的這個方法到目前為止一直使用良好。

使用方法,上面的代碼替換 single.php 中的主循環部分 (當然,你可以根據你模板的實際情況進行調用和添加樣式) 。添加文章時,同時添加一個自定義欄目,欄目名稱為”fireuikey”(可以換成任何你喜歡的變量名稱,需要同步修改上面的代碼!),值就填寫需要被調用的 page 的別名 (英文) 。如果自定義欄目為空或者不添加,那麼將不會執行調用,默認文章也會完美呈現。