Wordpress自定义帖子类型和字段

Wordpress自定义帖子类型和字段,wordpress,custom-post-type,advanced-custom-fields,Wordpress,Custom Post Type,Advanced Custom Fields,我有两个自定义的帖子类型 书和书的作者 我想 在各自的作者页面上列出作者的所有书籍 如果我有10本斯蒂芬·金的书。我想在斯蒂芬·金的页面上列出所有的(只有他写的)。我真的很难想出如何查询帖子来做到这一点 有什么建议吗?如果这有帮助的话,我正在使用高级自定义字段插件,但无法解决如何查询和显示此帖子信息 我目前使用以下代码来显示我的所有版本,但是如何在它们的特定作者页面上获得特定的版本呢 <?php $args=array( 'post_type' => 'book'

我有两个自定义的帖子类型

书和书的作者

我想

在各自的作者页面上列出作者的所有书籍

如果我有10本斯蒂芬·金的书。我想在斯蒂芬·金的页面上列出所有的(只有他写的)。我真的很难想出如何查询帖子来做到这一点

有什么建议吗?如果这有帮助的话,我正在使用高级自定义字段插件,但无法解决如何查询和显示此帖子信息

我目前使用以下代码来显示我的所有版本,但是如何在它们的特定作者页面上获得特定的版本呢

<?php
     $args=array(
     'post_type' => 'book',
     'post_status' => 'publish',
     'posts_per_page' => 12,
     'caller_get_posts'=> 1,
     'orderby'=> 'date',
     'order' => 'DESC'
     );
     $my_query = null;
     $my_query = new WP_Query($args);
     if( $my_query->have_posts() ) {
     echo '';
     $i = 0;
     while ($my_query->have_posts()) : $my_query->the_post();
     if($i % 6 == 0) { ?>
<div class="row">    
<?php
}
?>

<img src="<?php the_field('cover_image'); ?>" /><br />
<?php the_field('author_name'); ?><br />
<?php the_title(); ?><br />

</div>

<?php    
if($i % 6 == 0) { ?> 

<?php
}

$i++;
endwhile;
 } 
wp_reset_query();
?>

“/>



我做了类似的事情,但是


这里的主要问题是,你是如何对这些书进行分类的?你是否为此创建了分类法?这些分类法实际上是作者的名字?我的意思是,你是如何将一本书命名为某个作者的?

这就是诀窍。然后你可以按类别进行查询。在这种情况下,类别必须与作者页面slug相同。你将使用该数据查询post

在我的例子中,我所做的是创建一个函数,一旦创建了一个作者页面,就会创建一个具有相同名称和slug的分类法。因此,您不需要手动创建具有相同名称和slug的这两个对象。类似于:

<?php$myposts = get_posts(array(    'showposts' => -1,     'post_type' => 'books',     'tax_query' => array(        array(        'taxonomy' => 'author_book',         'field' => 'slug',         'terms' => array(AUTHOR_SLUG));    )));

作者的名字在Wordpress中被设置为类别。我使用它们来过滤我在每个作者页面上的常规新闻/博客帖子。也许我们可以将这些类别附加到每本书上,以将它们放在每个作者的页面上?这看起来更好,但在某些方面仍然不确定。我所有的作者页面都是动态生成的自定义帖子。如何我知道我在哪篇文章上才能找到合适的分类书籍?也就是说,我不能为100位作者创建100个模板来命名他们唯一的slug/类别。我怎么知道我在Stephen King的页面上,只需要输入Stephen King的书籍?只需使用post slug作为分类slug。创建一个模板single-author.php,这里有echo是post slug。这个slug就是您需要在查询中用作类别术语的slug。