【问题标题】:Wordpress Pods: How to only get (sub)categories with articles in itWordpress Pods:如何仅获取包含文章的(子)类别
【发布时间】:2016-02-12 09:09:27
【问题描述】:

我正在尝试获取所有有文章链接的子类别。

可视化所需的结果:

  • 子类别 A(链接 10 篇文章)
  • 子类别 B(0 篇文章链接)
  • 子类别 C(链接 1 篇文章)

所以对于我的 pod,我有以下内容:(所有高级内容类型)

类别吊舱

  • 文本字段:slug
  • 关系字段:category_relation(该字段仅在类别为子类别时填写)

文章连播

  • 关系字段:类别

我有这个查询,它有效,但它不会跳过其中没有文章的子类别。

$subcategories = pods( 'category',
    array( 'where' => "category_relation.slug = 'Top Category" 
) );

我知道我应该做一个左连接,但我不知道如何让它工作,因为我一次只能选择一种 pod 类型。

有没有人使用过这种获取 pod 数据的方式?

注意:我也在 Pods 论坛上问过这个问题,但没有得到任何回应。在 SO 上,我将接触到更多我认为的人,并在 Pods.io 上更新论坛帖子并提供最佳答案。

【问题讨论】:

  • 为什么要使用 pod... 获取子类别的功能有很多
  • @deemi 我非常依赖 Pods 来做高级的事情,因为确实使用了高级内容类型,正如你可以在我上面的第一篇文章中看到的那样。

标签: mysql wordpress podscms


【解决方案1】:

你试过'where' => 'category_relation.slug = "Top Category" AND 0 < tt.count'了吗?

此外,如果您将任何字符串传递到 $ 变量的“where”中,请务必先对其进行清理(pods_sanitize( $variable )$wpdp->prepare( "category_relation.slug = %s", $variable ) 等)

【讨论】:

  • 嗨@Scott,我没有名为 count 的列,所以我收到一条错误消息。感谢您的消毒提示!有没有办法做到这一点?我尝试了几个小时,我现在有一个 PHP 解决方案,它额外使用 20 个查询(对于每个子类别)编辑:我也很确定我需要一个 LEFT JOIN 来获得我想要的结果。
  • 我假设您的“类别”吊舱实际上是 WP Taxonomy 类型,这不正确吗? Pods 不允许使用这样的保留对象的名称,如果您能够创建一个,则绝对应该将名称更改为其他名称以避免潜在问题。在计数方面,如果您在“类别”窗格中有一个双向且与文章相关的关系字段,则可以使用AND related_articles.id IS NOT NULL
  • 嗨,不,它只是一个普通的高级内容类型。之后我可以创建一个 related_articles 双向 Pick 字段吗?还是我一开始就应该这样做?否则我手动创建我的 SQL 查询,只有 wp_podsrel 使得创建 LEFT JOIN 变得非常困难。
  • 您的文章窗格与类别窗格之间是否存在关系?如果是这样,您也许可以在 Category to Article 上创建一个新的关系字段,然后选择“Bidirectional”并保存它——然后尝试代码。如果这仍然不起作用,您可以尝试重新保存一些文章,看看它们是否开始显示。
猜你喜欢
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多