【问题标题】:Using wp_dropdown_page() to display a dropdown of a custom post type使用 wp_dropdown_pages() 显示自定义帖子类型的下拉列表
【发布时间】:2018-01-18 23:47:18
【问题描述】:

我正在尝试使用特定帖子类型的列表创建一个下拉列表。 我看到我可以使用 wp_dropdown_pages 函数来做到这一点。 我在我的 td 中添加了这段代码,但是当页面显示时,代码没有被解释。这只是几个例子。

<td><?php wp_dropdown_pages(array('id'=>'marque0','post_type' => 'Brands')); ?></td>

此外,我需要过滤第二个下拉列表,其中仅包含在第一个下拉列表中选择的父级的子帖子。为此,我需要父帖子的 ID。如何从第一个下拉列表中选择的元素中获取此信息?

非常感谢。

更新:

我找到了一种在 wordpress 页面中绕过 PHP 使用的方法,我创建了短代码来调用 wp_dropdown_pages,然后我在我的页面中使用了短代码。

【问题讨论】:

  • 您的post_typeBrands 无效,因为它包含大写字母。用brands 试试(并仔细检查它是否与您在register_post_type 调用中声明的内容相同。)
  • 嗨,你是对的,我查看了表 wp_posts 以查看实际的自定义帖子类型名称并填写了正确的值,但代码仍然无法解释。
  • 我想我知道为什么。似乎不可能将 php 代码直接用于 wordpress 帖子/页面,我正在寻找解决方案
  • 是的,就是这样,php 不会在 wordpress 页面/帖子中解释,您必须安装一个插件,定义您自己的短代码才能在页面/帖子中调用 php 函数。
  • 不要将php代码添加到任何类型的编辑器中。它创建了可以被黑客利用的漏洞

标签: php jquery html wordpress


【解决方案1】:

令人惊讶的是(!),只需在您的自定义帖子类型设置中指定'hierarchical' =&gt; true,而不是wp_dropdown_pages() 函数中的hierarchical 参数。

register_post_type( 'brands', array(
    'labels'    => array(
        ..........
    ),
    .........
    'hierarchical' => true,
    .........
));

那么它应该可以工作了:

wp_dropdown_pages(array(
   'id' => 'marque0',
   ..........
   'post_type' => 'brands'
));

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 1970-01-01
    • 2012-09-18
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多