问题描述
并提前感谢您的帮助。
我已经做了一些搜索,这个问题已经回答了几次,参考 「帖子 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。