显示Single.php上的相关帖子,按分类术语分组,并选择高级定制字段帖子对象

时间:2013-06-07 作者:Natoli

我有一些自定义分类法的帖子,称为区域,其中包含一些术语,如文章、演示、新闻等。这些术语适用于正常的帖子类型;过帐;。

在一个名为“quot;“公司”;,我添加了一个Advanced Custom Field Post Object 使用字段名associated_items 选择与本公司相关的岗位。

目前,我的single-company.php 显示在ACF字段中选择的职位associated_items...

<?php $post_objects = get_field(\'associated_items\');?>
<?php if( $post_objects ): ?>
        <div class="relatedposts">
            <h3>Related Posts</h3>
            <?php foreach( $post_objects as $post): ?>
            <?php setup_postdata($post); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
<?php endif; // end if( $post_objects ) ?>
上述代码仅输出在ACF自定义字段中选择的职位associated_items 但按时间顺序排列,而我希望根据分类术语对其进行分组,例如如下所示:

与公司相关的职位

该区域下方的一个职位;“条款”

该区域下方的一个职位;演示文稿“新闻

  • 该区域下方的帖子“;“新闻”
非常感谢!

1 个回复
SO网友:nuResponse

我建议创建3个单独的[\'associated\\u items\']字段,而不是1个。

例如:

  • [“相关文章”]&;“分类术语筛选:文章”
  • [“关联的\\u演示文稿”]&;“分类术语筛选:演示文稿”
  • [\'associated\\u news\']&;“分类术语筛选:新闻”注意:分类术语筛选也会限制可供选择的相关帖子,从而带来更好的用户体验

    然后更改上面用于每个字段的代码
    For Example:

    <h2>Posts related to the Company</h2>
    <?php $assoc_articles = get_field(\'associated_articles\');?>
    <?php if( $assoc_articles ): ?>
        <div class="relatedposts">
            <h3>Articles</h3>
            <?php foreach( $ass_articles as $article): ?>
            <?php setup_postdata($article); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    <?php $assoc_presentations = get_field(\'associated_presentations\');?>
    <?php if( $assoc_presentations ): ?>
        <div class="relatedposts">
            <h3>Presentations</h3>
            <?php foreach( $assoc_presentations as $presentation ): ?>
            <?php setup_postdata($presentation ); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    <?php $assoc_news = get_field(\'associated_news\');?>
    <?php if( $assoc_news ): ?>
        <div class="relatedposts">
            <h3>News</h3>
            <?php foreach( $assoc_news as $news_item ): ?>
            <?php setup_postdata($news_item ); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    我假设您使用上述代码示例是因为您喜欢它。但是,如果您只需要一个到帖子的链接,那么实际上不需要设置\\u postdata()。。。您可以简单地使用$post->ID,然后使用如下内容循环结果:

    <?php foreach( $assoc_news as $news_item ): 
    $news_ID = $news_item->ID; ?>
    <li><a href="<?php get_permalink($news_ID ); ?>"><?php get_the_title($news_ID ); ?></a></li>... etc
    
    我希望这有帮助。

结束

相关推荐

posts_groupby problem

在我的搜索页面上,我想按帖子类型对帖子进行分组。为此,我有以下几点:add_filter(\'posts_groupby\', \'group_by_post_type\' ); function group_by_post_type( $groupby ) { global $wpdb; if( is_search() ) { return $wpdb->posts.\'.post_type\'; } } 在

显示Single.php上的相关帖子,按分类术语分组,并选择高级定制字段帖子对象 - 小码农CODE - 行之有效找到问题解决它

显示Single.php上的相关帖子,按分类术语分组,并选择高级定制字段帖子对象

时间:2013-06-07 作者:Natoli

我有一些自定义分类法的帖子,称为区域,其中包含一些术语,如文章、演示、新闻等。这些术语适用于正常的帖子类型;过帐;。

在一个名为“quot;“公司”;,我添加了一个Advanced Custom Field Post Object 使用字段名associated_items 选择与本公司相关的岗位。

目前,我的single-company.php 显示在ACF字段中选择的职位associated_items...

<?php $post_objects = get_field(\'associated_items\');?>
<?php if( $post_objects ): ?>
        <div class="relatedposts">
            <h3>Related Posts</h3>
            <?php foreach( $post_objects as $post): ?>
            <?php setup_postdata($post); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
<?php endif; // end if( $post_objects ) ?>
上述代码仅输出在ACF自定义字段中选择的职位associated_items 但按时间顺序排列,而我希望根据分类术语对其进行分组,例如如下所示:

与公司相关的职位

该区域下方的一个职位;“条款”

该区域下方的一个职位;演示文稿“新闻

  • 该区域下方的帖子“;“新闻”
非常感谢!

1 个回复
SO网友:nuResponse

我建议创建3个单独的[\'associated\\u items\']字段,而不是1个。

例如:

  • [“相关文章”]&;“分类术语筛选:文章”
  • [“关联的\\u演示文稿”]&;“分类术语筛选:演示文稿”
  • [\'associated\\u news\']&;“分类术语筛选:新闻”注意:分类术语筛选也会限制可供选择的相关帖子,从而带来更好的用户体验

    然后更改上面用于每个字段的代码
    For Example:

    <h2>Posts related to the Company</h2>
    <?php $assoc_articles = get_field(\'associated_articles\');?>
    <?php if( $assoc_articles ): ?>
        <div class="relatedposts">
            <h3>Articles</h3>
            <?php foreach( $ass_articles as $article): ?>
            <?php setup_postdata($article); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    <?php $assoc_presentations = get_field(\'associated_presentations\');?>
    <?php if( $assoc_presentations ): ?>
        <div class="relatedposts">
            <h3>Presentations</h3>
            <?php foreach( $assoc_presentations as $presentation ): ?>
            <?php setup_postdata($presentation ); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    <?php $assoc_news = get_field(\'associated_news\');?>
    <?php if( $assoc_news ): ?>
        <div class="relatedposts">
            <h3>News</h3>
            <?php foreach( $assoc_news as $news_item ): ?>
            <?php setup_postdata($news_item ); ?>
                    <?php get_template_part( \'content\', \'excerpt\' ); ?>
            <?php endforeach; ?>
        </div><!-- div.relatedposts -->
    <?php wp_reset_postdata(); ?>
    
    我假设您使用上述代码示例是因为您喜欢它。但是,如果您只需要一个到帖子的链接,那么实际上不需要设置\\u postdata()。。。您可以简单地使用$post->ID,然后使用如下内容循环结果:

    <?php foreach( $assoc_news as $news_item ): 
    $news_ID = $news_item->ID; ?>
    <li><a href="<?php get_permalink($news_ID ); ?>"><?php get_the_title($news_ID ); ?></a></li>... etc
    
    我希望这有帮助。