如何在 the_content 之前或之後添加內容以及在自定義帖子類型中
已發表: 2020-01-09在您的 WordPress 網站頁面和帖子中,您可能希望在頁面內容或帖子內容之後添加一些內容。 所有頁面或帖子或兩者或自定義帖子類型都可能需要此類內容。 在這種情況下,您需要使用過濾器在 WordPress 主題或插件的頁面模板中的the_content函數之後或之前添加內容。 幸運的是,今天,我將說明如何在不破壞網站的情況下完成這項工作的最簡單方法。
發佈內容後要添加的內容示例
一個很好的例子是,當您想與訪問者分享有關會員披露或評論政策的快速說明時。
您無需在每次發布帖子或頁面時都輸入此內容,而是可以使用過濾器自動完成。
每次必須添加此類內容時,您不僅可以節省時間,還可以防止拼寫錯誤。 如果您不是 WordPress 開發人員,您可以輕鬆地將此代碼段添加到您的functions.php 文件中,並將內容替換為您各自的內容。 您將來不必擔心它。
在 WordPress 中的頁面或發佈內容之後添加內容
創建 WordPress 主題或自定義 WordPress 主題時,您可能需要將內容添加到the_content的末尾。 當您使用自定義元字段或自定義帖子類型以及應添加到每個帖子末尾的特定詳細信息時,這種情況尤其常見。
您可能會使用get_post_meta 、 get_user_meta或get_option來獲取為特定帖子或用戶存儲的數據,然後再將其添加到 the_content 函數之後。
在幾種情況下,您可能需要在the_content之後添加內容。 我想通過逐步演示如何在the_content 之後添加內容來簡化您的操作。
在 the_content 之後過濾 Hook 以添加新內容
顯然,要在 WordPress 頁面上添加任何內容,您需要了解過濾器掛鉤的工作原理。 理想情況下,WordPress 有兩種類型的鉤子,動作鉤子和過濾器,正如這篇文章中清楚解釋的那樣——WordPress do_action 鉤子和應用過濾器,或者你至少應該知道如何在你的主題中編輯 functions.php 文件
所以我們需要一個過濾器來過濾我們頁面上的內容,然後在我們返回輸出之前添加新內容。
在 WordPress 中的 the_content 之後添加內容
首先,我們需要按如下方式創建過濾器:
add_filter('the_content', 'add_content_after');
回調函數現在應該包含我們想要在 the_content 之後添加的代碼,我們還應該在回調函數中傳遞 $content 參數,以便我們過濾並返回:
函數 add_content_after($content) { $after_content = “我們的評論政策示例”; $完整內容 = $內容。 $after_content; 返回 $fullcontent; }
因此,在這種情況下,我們添加了$after_content ,它的顯示如下圖所示:
您可以將代碼中$after_content的值替換為您的消息,並將完整的代碼段添加到 functions.php 中,內容將添加到內容之後。 合併後的代碼片段如下:
add_filter('the_content', 'add_content_after'); 函數 add_content_after($content) { $after_content = “發佈內容後我們的評論政策示例”; $完整內容 = $內容。 $after_content; 返回 $fullcontent; }
在 WordPress 頁面或帖子中的 the_content 之前添加內容
在某些情況下,您可能希望在the_content之前添加內容。 比如我最近在建一個寵物網站的時候,需要先列出犬種的詳細信息,然後才能顯示內容,如下圖所示:
雖然在這個項目中我使用了不同的方法,但如果您需要在the_content之前顯示內容,您仍然可以使用上面共享的過濾器,唯一的區別是加入$fullcontent變量時。
在這種情況下,您將從要首先顯示的內容開始,如下所示:
add_filter('the_content', 'add_content_before'); 功能 add_content_before($content) { $before_content = “我們在發佈內容之前的評論政策示例”; $fullcontent = $before_content 。 $內容; 返回 $fullcontent; }
輸出應顯示為下圖中突出顯示:
在 WordPress 頁面或帖子中的 the_content 之前和之後添加內容
您還可以有一個組合場景,您希望在the_content之前和之後顯示內容,這可以通過以下代碼實現:
add_filter('the_content', ' add_content_before_and_after); 功能 add_content_before_and_after($content) { $before_content = “我們發佈內容前後的評論政策示例”; $after_content = “我們發佈內容前後的評論政策示例”; $fullcontent = $before_content 。 $內容。 $after_content; 返回 $fullcontent; }
輸出應顯示為下圖中突出顯示:
在 the_content 前後和自定義帖子類型中添加內容
如果您希望只為特定的自定義帖子類型添加此內容,您可以添加一些邏輯來確定我們是否正在查看自定義帖子類型,如果是,我們添加內容,否則我們返回默認的the_content。
在這種情況下,如果您的自定義帖子類型名為“書籍” ,則代碼應如下所示:
//將新內容添加到特定自定義帖子類型頁面模板的4個步驟 add_filter('the_content', 'add_new_content_after_books_custom_post_type'); 功能 add_new_content_after_books_custom_post_type($content) { //1) 檢查我們是否在單個帖子上並且帖子類型等於書籍,即自定義帖子類型的 slug if (is_singular("books")){ //2) 將新內容添加到變量中 $new_books_content = "這是在圖書自定義帖子類型之後要添加的新圖書內容" $aftercontent = $new_books_content; $完整內容 = $內容。 $後內容; //3) 如果條件為真,則返回自定義帖子類型的第一次 返回 $fullcontent; }別的{ //4) 如果這是任何其他頁面或帖子而不是書籍 cpt 返回默認的 the_content 而沒有附加內容 返回$內容; } }
包起來
正如我們在這篇文章中所概述的,在the_content之後或之前添加內容不應該是一項艱鉅的任務,您可以快速將代碼片段複製到您的主題functions.php文件中,它應該可以工作。
作為一名專業的 WordPress 開發人員,了解更多關於 WordPress 操作鉤子,尤其是過濾器鉤子的信息可能會有所幫助。 我希望本教程對您有用,並將與您的開發人員和朋友分享。