2015-04-06 38 views
0

我不是一個超級有經驗的WordPress人,但我通常知道自己在做什麼,並且已經進行了多年的編程。將Wordpress中的內容與設計分離

我正在構建一個相當簡單的WordPress站點,但很多帖子將在未來由客戶添加。

我突然意識到,我的所有帖子都是靜態的,所以如果需要更改設計,他們需要手動應用於多個頁面。

我搜索了Google,但無濟於事。我需要的是一個插件或方法,它允許我爲我的帖子製作模板,並在其中添加每個頁面的獨特內容。然後,如果需要更改設計,我只需簡單地編輯模板,設計將在使用此模板的所有頁面上即時更改。

我發現插件似乎提供發佈模板,但他們似乎做的是創建一個預製的設計的新帖子,但不能使改變設計,這反映了所有使用該模板的帖子。也許我在這裏錯過了簡單的東西,因爲我不能成爲唯一想要實現這一目標的WP作者?

我不是在談論動態內容。即我不需要不斷從API中獲取天氣或價格等更新數據。內容是爲每個頁面手寫的,但我希望將它與設計分開,所以如果需要進行設計更改,它們只能從某種模板管理器製作一次,而不能在每個頁面上單獨製作。其實,我已經在使用簡單的post-snippets插件,並且我意識到我可以使用這個或類似的東西來實現我的目標,但是我不認爲這對於非易失性應用程序是非常用戶友好的,技術作者。相反,如果我在作者填寫的每篇文章下都有一組自定義字段,然後從那裏獲取內容並插入到頁面模板中,那將是理想的選擇。

回答

0

原則上,您應該可以使用CSS選擇器來更改設計。當然,這可能有其侷限性,但從來沒有一種設計適合所有。

對於更大的更改,您將需要更改WordPress模板。

+0

謝謝。我會試着澄清一點。我只想改變帖子內容的設計。例如,我爲團隊中的每個人都有一個帖子。使用Avada主題中的Fusion構建器創建佈局,該構建器使用簡碼創建佈局(列,圖像框等等),但在每個帖子中只有2個獨特的數據片段:照片網址和此說明人。想象一下,客戶決定他們想讓照片看起來更大,這意味着我必須手動編輯所有這些帖子。 – 2015-04-06 12:40:10

+0

這不一定是正確的,你可以用CSS代碼設置圖像的寬度和高度,所以你可以改變它們,只是修改CSS樣式表。 – 2015-04-06 13:54:39

0

好吧,經過一番研究和探索,這是我想出的。

安裝「高級自定義字段」和「自定義帖子模板」插件,但這兩個插件都不是必需的。

創建一組自定義字段,爲每個帖子定義唯一的數據(URL,媒體選擇器等)。

最重要的是,按照「自定義帖子模板」插件的說明創建一個新的自定義帖子模板。在此模板中,移除輸出發佈內容(the_content())的行,並將其替換爲輸出此頁面類型的所有簡碼或其他內容的代碼,並將佔位符字符串替換爲該帖子的自定義變量的值。然後(在我的情況下)我做一些像do_shortcode($ page_template)正確輸出該頁面的正確內容。

我創建了一個新帖子,將內容字段完全清空,並根據需要填寫自定義字段的值。此外,您必須選擇帖子模板,以便它與您創建的新自定義模板相匹配。

$v=get_post_custom_values("image_url")[0];//gets the id of the post which contains the image 

$image_url = wp_get_attachment_image_src($v, 'medium')[0]; //get the image (URL?) from the reference 

$page_template='[one_third last="no" spacing="yes" background_color="" background_image="" background_repeat="no-repeat" background_position="left top" border_size="2px" border_color="#eaeaea" border_style="solid" padding="20px" class="" id=""][imageframe lightbox="no" style_type="none" bordercolor="" bordersize="0px" borderradius="0" stylecolor="" align="none" link="" linktarget="_self" animation_type="0" animation_direction="down" animation_speed="0.1" class="" id=""] <img src="#image_url#" alt="" />[/imageframe][fusion_text]<a href="mailto:#personal_email#">Email Me</a> | <a href="#personal_website_url#" target="_blank">Website</a>[/fusion_text][/one_third][two_third last="yes" spacing="yes" background_color="" background_image="" background_repeat="no-repeat" background_position="left top" border_size="0px" border_color="" border_style="" padding="" class="" id=""][fusion_text]#main_text_html#[/fusion_text][/two_third]'; 

$page_template=str_replace ("#image_url#" , $image_url , $page_template); 
echo do_shortcode($page_template); 

上面的代碼中包含的頁面模板硬編碼到$ page_template變量,但它也可以通過參考其充當模板帖子的ID加載。

此代碼目前僅插入正確的圖片網址。一旦完成,它還將插入個人電子郵件鏈接,網站鏈接和正文。