我不确定这是否可能,但有人可以肯定地告诉我。
如果我正在制定定制解决方案,这种情况可以通过链接表来解决。
在典型的帖子中,我有一个中继器字段,用于列出书籍。这些书籍被保存为自定义帖子类型,因此您的页面可能包含 10 本推荐/相关书籍。有些书在多个帖子中被引用。假设您有一篇关于约翰·格里沙姆的帖子和一篇关于法律惊悚片的帖子,它们可能都包含《鹈鹕简报》。到目前为止一切顺利。
但是如果我想反转查询怎么办?
当我进入 single.php 页面查找一本书时,有没有办法列出引用该书的帖子?我关于《鹈鹕简报》的页面是否可以显示它已包含在有关约翰·格里沙姆的帖子和有关法律惊悚片的帖子中?还是我在要求不可能的事情?!
如果这是可能的,那么我不知道从哪里开始。
假设您使用 ACF PRO 使用密钥
recommended_books
创建了中继器,然后对于每个中继器,您有一个名为 book_id
的图书 ID 字段,因此在书籍的 single.php
文件中,您可以执行某些操作像这样获取当前书籍被引用的作者 ID。
global $wpdb;
$book_id = get_the_ID(); // Assign the ID of the current book;
$authors = $wpdb->get_results("SELECT {$wpdb->prefix}postmeta.post_id FROM {$wpdb->prefix}postmeta
INNER JOIN {$wpdb->prefix}posts
WHERE {$wpdb->prefix}postmeta.post_id = {$wpdb->prefix}posts.ID
AND {$wpdb->prefix}posts.post_type = 'post'
AND meta_key LIKE 'recommended_books_%_book_id' AND meta_value={$book_id}");
if($authors) {
foreach ($authors as $author) {
$author_id = $author->post_id;
// Do your stuff to display the author
}
}
如果您的设置不同,请记得更新密钥
recommended_books
、book_id
和帖子类型 author
。
现在有了你得到的
post_id
数组,你可以按照你想要的方式显示作者列表。