首页 文章

Wordpress:在常规帖子中显示自定义帖子类型的内容

提问于
浏览
1

我觉得这个问题有一个非常简单的解决方案 . 然而,在试图解决它大约3个小时失败后,我谦卑地来找你 .

基础知识:

  • 已创建自定义帖子类型“ band ”,并且有多个自定义字段(通过Advanced Custom Fields插件创建) .

问题:

如何在常规帖子中获取并显示特定 band 条目(使用其ID或 Headers 或slug)的内容(特别是自定义字段数据)? (见下文diagram

this diagram http://thisnewband.com/images/diagram.png .

触发自定义帖子类型显示的方法:

我们必须提供ID / title / slug,以便它知道要显示的 band 帖子的内容

  • Shortcode(例如 [band id="21"] )(在帖子内容中添加)

  • 自定义字段(自定义字段名称 band-id ,您可以在其中输入 band 的ID)

我尝试过什么以及它为什么不起作用:

  • 短代码

在帖子编辑器字段中插入

  • ` [band id = "21"]

  • 使用 WP_Query 查询类型= band 且ID = "21"的帖子 .

  • 代码位于 functions.php

  • 结果:它将回显静态文本,但不会显示任何特定于帖子的内容(波段名称等) . 也不会拉取特定于帖子的自定义字段数据 .

  • (也试过 query_post 但没有运气)

  • 自定义字段

  • 在帖子编辑器页面的自定义字段中输入ID(21) .

  • 将其直接编入到帖子模板中:

  • 使用 WP_Query 并从自定义字段拉出数组中的 ID .

  • 结果:没有什么好事发生 .

我遇到麻烦的地方:

  • 在实际帖子中,很难从自定义帖子类型中提取自定义字段数据

最佳解决方案:

无论是使用短代码,自定义字段,还是新的小部件,如果有人可以:

  • 创建一个PHP模板,其中包含单个 Band 内容应如何显示的代码 . (包括循环) . 示例名称:band-block.php

  • 使用 get_template_part('band-block'); 来回显此代码(通过functions.php发布模板或短代码)

谢谢你的帮助!如果您想查看我的任何代码,请告诉我 .

3 回答

  • 0

    正常循环后添加此循环...

    <?php /* Display all the author's posts from the custom post type ('band') */ ?>
    <?php
        $authorid = get_the_author_meta( ID, $userID );
               $args4=array('author'=>$authorid,'post_type'=>'band', 'numberposts'=> -1);
               $cquery4=new WP_Query($args4);
               if($cquery4->have_posts()):
                   while($cquery4->have_posts()):
                       $cquery4->the_post();
               ?>
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
                   <p><?php the_title();?></p>
    </a>
               <?
                   endwhile;
                    wp_reset_postdata();
               endif;
    ?>
    
  • 0

    我知道你已经为你的问题找到了解决方案,但对于其他人我会给他们另一个解决方案:

    你可以按ID查询,没问题 . 看看这些:http://www.advancedcustomfields.com/resources/field-types/relationship/但你必须检查自定义字段"return format"框"Post IDs" . 然后它运作得很好 .

    抱歉我的英语不好;)干杯

  • 1

    通过Hobo的一些惊人的帮助,我能够想出一个解决方案!

    The main problem 试图通过'ID'进行查询 . 无论我们尝试什么,它都从未运作良好 . (这可能是Advanced Custom Fields存储ID字段内容的方式 . )

    做了什么工作:

    • 为帖子页面创建了一个自定义字段,用于将 Band (自定义帖子类型)帖子名称/ slug放入其中 . (自定义字段名为 post-band-name ,使用Advanced Custom Fields插件创建 . )

    • 将查询代码放在帖子模板中 . (见下面的代码)

    • 完成 .

    解决方案代码

相关问题