問題描述
並提前感謝您的幫助。
我已經做了一些搜尋,這個問題已經回答了幾次,參考 「帖子 2 帖子」 外掛,但檔案是非常”coder-centric” – 我能夠和舒適地讓我的手髒,但我確實需要比那裡更好的 Step-by-Step 檔案。 🙂
這就是我需要的。我使用 gPress 使用他們的自定義帖子型別生成”Places” 。這是非常好的工作。我需要做的是能夠將”Events” 新增到一個地方。我可以使用自定義的帖子型別來捕獲所有的事件詳細資訊,但是我希望能夠將事件附加到特定的位置和 vice-versa 。如果有人正在檢視活動資訊,那麼還有一個簡單的方法可以拉出與活動相關的地點資訊。
任何建議讚賞!
最佳解決方案
Scribu’s posts-to-posts 是一個很好的和簡單的外掛,我相信我們可以幫你找到它。 basic usage 非常簡單。
假設您的自定義帖子型別被命名為'place'
和'event'
,以下程式碼將進入您的主題的 functions.php 檔案:
function my_connection_types() {
p2p_register_connection_type( array(
'name' => 'events_to_places',
'from' => 'event',
'to' => 'place',
) );
}
add_action( 'p2p_init', 'my_connection_types', 100 );
這將使元框在您的自定義帖子編輯螢幕中分配關係。
對於您的單個位置和事件頁面,您可以在 WordPress template hierarchy single-{post_type}.php
之後的主題中建立自定義模板,因此在您的情況下為 single-event.php
和 single-place.php
。您可以從 single.php 模板複製這些。
列出連線,我們只需要在這些模板中的一些程式碼,無論我們想要輸出列表。這將進入位置模板並輸出連線的事件:
<?php
$connected = new WP_Query( array(
'connected_type' => 'events_to_places',
'connected_items' => get_queried_object()
) );
echo '<p>Related events:</p>';
echo '<ul>';
while( $connected->have_posts() ) : $connected->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
echo '</ul>';
wp_reset_postdata();
?>
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。