在插件的WP Admin中获取用户的所有自定义帖子类型

时间:2015-07-26 作者:Julian Flynn

我正在制作一个WordPress插件,并触及了一个粗略的点。我正在尝试使用户可以从所有帖子类型中进行选择,包括自定义帖子类型。下面的代码在WordPress admin的下拉列表中显示了帖子、页面和附件帖子类型。

<?php
$args = array(
    \'public\'   => true,
    \'_builtin\' => true
);
$output = \'names\'; // names or objects, note names is the default
$operator = \'and\'; // \'and\' or \'or\'
$post_types = get_post_types( $args, $output, $operator ); 
echo \'<select name="custom-post-types">\';
    foreach ( $post_types  as $post_type ) {
        echo \'<option value="\'. $post_type.\'">\' . $post_type . \'</option>\';
        } 
        echo \'</section>\';
?>
我理解用户如何使用他们的功能。php可以连接到他们的自定义帖子类型中,但我试图避免他们的痛苦,而让插件自动抓取所有的。我试着查看其他插件并进行搜索,但搜索结果与此无关,其他插件也让我不知所措。

谢谢你的帮助,谢谢。

1 个回复
最合适的回答,由SO网友:Adam 整理而成

通过_builtin 参数到get_post_types(), 只返回WordPress默认的帖子类型。

相反,只要通过public 作为论据,

以下是WooCommerce激活的开发站点上的输出示例:

var_dump(get_post_types([\'public\' => true]));

//result
array(4) {
  ["post"]=>
  string(4) "post"
  ["page"]=>
  string(4) "page"
  ["attachment"]=>
  string(10) "attachment"
  ["product"]=>
  string(7) "product"
}
不带参数(非public post类型随public一起返回):

var_dump(get_post_types());

//result
array(11) {
  ["post"]=>
  string(4) "post"
  ["page"]=>
  string(4) "page"
  ["attachment"]=>
  string(10) "attachment"
  ["revision"]=>
  string(8) "revision"
  ["nav_menu_item"]=>
  string(13) "nav_menu_item"
  ["product"]=>
  string(7) "product"
  ["product_variation"]=>
  string(17) "product_variation"
  ["shop_order"]=>
  string(10) "shop_order"
  ["shop_order_refund"]=>
  string(17) "shop_order_refund"
  ["shop_coupon"]=>
  string(11) "shop_coupon"
  ["shop_webhook"]=>
  string(12) "shop_webhook"
}

结束

相关推荐

Wp-admin重定向至HTTPS,拒绝登录

我通过cloudflare插件使用cloudflare,启用了SSL。在wp配置中启用ssl。php文件:define(\'WP_HOME\',\'https://example.org\');define(\'WP_SITEURL\',\'https://example.org\');$_SERVER[\'HTTPS\'] = \'on\';主站点上的一切似乎都很正常,但当尝试登录到admin时,我看到:您没有足够的权限访问此页面。这是在进入常规设置并调整“主页”和“站点URL”选项后开始的。按照指南,