在另一个自定义邮件类型的单个邮件上显示一个自定义邮件类型的内容

时间:2014-09-02 作者:DaveyJake

我目前正在创建一个大学足球博客,我有两种自定义帖子类型:conferenceteam.

每个conference 帖子类型将是一个横向列表,由每个团队的徽标组成,并将显示在每个single team 只要团队在各自的会议上,就发布。它看起来几乎与此相同:

Horizontal List for Conference Post Type Example

使用ACF plugin, 我给了每个team 发布类型a会议字段,用户可以从中选择团队所属的会议。

Conference for Team Post Type

每个conference post具有各自的HTML 已经为其内容。我的问题是,我如何继续使用PHP? 我是一个PHP 所以如果答案很明显,请原谅我。

我从一个网站上得到了这个想法D1ARugby.com. 我正在努力实现的示例如下:

D1ARugby.com Team Page Example

任何帮助都将不胜感激!非常感谢。

更新,这是我目前在单队帖子中使用的模板。它适用于名称仅为一个单词而非多个单词的会议。

<?php
    // get team posts
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $team_args = array(
        \'posts_per_page\'   => 1,
        \'post_type\'        => \'team\',
        \'post_status\'      => \'publish\',
        \'suppress_filters\' => true,
        \'paged\'            => $paged
    );
    $conf_args = array(
        \'posts_per_page\'   => 1,
        \'post_type\'        => \'conference\',
        \'post_status\'      => \'publish\',
        \'suppress_filters\' => true,
        \'paged\'            => $paged
    );

    $teams = get_posts($team_args);
    $conferences = get_posts($conf_args);

    foreach($teams as $team) : setup_postdata($team);
?>

    <section id="conference" class="row">

        <?php foreach($conferences as $conf) : setup_postdata($conf); ?>
        <div class="conf-header">
            <?php
                $conference_name = get_post_meta( get_the_id(), \'conference\', true );
                $conference = get_page_by_title( $conference_name, OBJECT, \'conference\' );
            ?>
            <h1 class="conference-title"><?php echo $conference_name; ?></h1>
            <?php 
                if ($conference) {
                    echo apply_filters( \'the_content\', $conference->post_content );
                }
            ?>
        </div>
        <?php endforeach; ?>

    </section>
我知道为什么它会显示在名为“California”和“West”的会议上,但不会显示在名为“Big Ten”或“Red River”的会议上任何关于为什么会发生这种情况的想法都将不胜感激。

谢谢大家!

2 个回复
最合适的回答,由SO网友:Scott Nelle 整理而成

根据会议字段是否存储文本字符串(如“Big Ten”)与会议帖子的ID,您需要的代码略有不同。我将包括以下两个方面:

Text String Example

// place this code inside the loop of your single-team template
$conference_name = get_post_meta( get_the_id(), \'conference\', true );
$conference = get_page_by_title( $conference_name, OBJECT, \'conference\' );

if ($conference) {
    echo apply_filters( \'the_content\', $conference->post_content );
}

ID Example

// place this code inside the loop of your single-team template
$conference_id = get_post_meta( get_the_id(), \'conference\', true );
$conference = get_post( $conference_id );

if ($conference) {
    echo apply_filters( \'the_content\', $conference->post_content );
}

SO网友:DaveyJake

找到了答案!事实证明,在ACF中,如果您使用单选按钮并为每个值设置了键,那么CAN 实际上包含空格!通过将键与值进行匹配(不区分大小写),我能够让会议显示在单个团队的帖子上。

结束