如何将其他自定义帖子类型的内容插入到帖子中?

时间:2011-01-29 作者:Joe

假设我有一个名为“Performers”的自定义帖子类型。这将由不同的乐队/表演者填充。这些帖子有一个特色图片和自定义字段(mp3文件、facebook链接、myspace链接等)。

我有另一个自定义帖子类型,称为“事件”。

当我创建一个新的事件帖子时,我希望有一个下拉框,从“执行者”自定义帖子类型中选择一个乐队。

这会将特定乐队/表演者的所有数据插入活动帖子(自定义字段、特色图片等)。

从“事件”管理员插入/注入这种循环的最佳方法是什么?

1 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

目前我所知道的最好的处理方法是Posts 2 Posts plugin:

这里有一个示例,展示了如何设置自定义帖子类型(如果您已经有了这些类型,那么阅读本文的其他人会受益匪浅)以及p2p_register_connection_type() 插件需要设置帖子关系。这可以放在你的主题中functions.php 文件或中的.PHP 您可能正在编写的插件的文件:

add_action(\'init\',\'event_performer_init\');
function event_performer_init() {
  register_post_type(\'event\',
    array(
      \'label\'           => \'Events\',
      \'public\'          => true,
      \'show_ui\'         => true,
      \'query_var\'       => \'event\',
      \'rewrite\'         => array(\'slug\' => \'events\'),
      \'hierarchical\'    => true,
      //\'supports\'      => array(\'title\',\'editor\',\'custom-fields\'),
    )
  );
  register_post_type(\'performer\',
    array(
      \'label\'           => \'Performers\',
      \'public\'          => true,
      \'show_ui\'         => true,
      \'query_var\'       => \'performer\',
      \'rewrite\'         => array(\'slug\' => \'performers\'),
      \'hierarchical\'    => true,
      //\'supports\'      => array(\'title\',\'editor\',\'custom-fields\'),
    )
  );
  if ( function_exists(\'p2p_register_connection_type\') )
    p2p_register_connection_type( \'event\', \'performer\' );

  global $wp_rewrite;
  $wp_rewrite->flush_rules(false);  // This only needs be done first time
}
然后在主题的模板文件中single-event.php 您可以添加如下代码来显示每个乐队的信息(我在这里展示了基本知识;我将留给您填写所有细节和/或在WordPress答案网站上询问其他更具体的问题,例如您是否需要知道如何获取特色图像等)

<?php
  if (count($performers = p2p_get_connected($post->ID))) {
    foreach($performers as $performer_id) {
      $performer = get_post($performer_id);
      echo \'The Band: \' . apply_filters(\'the_title\',$performer->post_title);
      echo \'Facebook Link: \' . get_post_meta($post->ID,\'facebook_link\',true);
    }
  }
?>

结束

相关推荐

Paging in a sidebar mini loop

我切换到了另一个主题,并决定用其中的一些默认代码制作一个小部件,在自定义循环中显示我的美味帖子、推特帖子、su帖子和youtube视频(不包括主循环中的这些类别)。但是现在。。。分页不再工作。我制作了这个小部件:// =============================== EDL Sidebar Posts Widget ====================================== class SidebarPosts extends WP_Widget { &#x