修改内置支柱类型属性

时间:2012-04-17 作者:Niels

我有一个不寻常的情况,我需要使内置的帖子类型“页面”不分等级。

我用var_dump(get_post_type_object(\'page\')); die; 我得到了这个:

object(stdClass)#164 (26) {
  ["labels"]=>
  ...
  }
  ["description"]=>
  string(0) ""
  ["publicly_queryable"]=>
  bool(false)
  ["exclude_from_search"]=>
  bool(false)
  ["capability_type"]=>
  string(4) "page"
  ["map_meta_cap"]=>
  bool(true)
  ["_builtin"]=>
  bool(true)
  ["_edit_link"]=>
  string(16) "post.php?post=%d"
  ["hierarchical"]=>
  bool(true)
  ....
}
如何修改post类型对象,以便["hierarchical"]=>bool(false)?

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

这是一个相当晚的答案,但我想做一些类似的事情,并找到了答案。我想将nav\\u menu\\u项放入RSS提要,这需要更改内置的nav\\u menu\\u item post type属性public\\u queryable。

总之,它实际上非常简单,下面是一个通用函数:

function change_wp_object() {
  $object = get_post_type_object(\'post_type\');
  $object->property = true;
}
add_action(\'init\',\'change_wp_object\');
就这样。我在插件中找到了它。如果要查看要更改的可用属性列表,请插入

echo \'<pre>\'.print_r($object, 1).\'</pre>\';
以获得所有属性的格式良好的输出。

在你的情况下,你会使用

$object-> hierarchical = false;
希望对别人有帮助!

SO网友:miahelf

据我所知,没有(好的)方法来改变核心职位类型。当然,另一种选择是创建自己的自定义帖子类型。如果你有一堆文章是页面的核心文章类型,如果需要的话,你可以运行一个MySQL查询将它们一次转换为新的文章类型。或者,您可以更改主题显示页面列表的方式。

要创建非层次结构的新职位类型,请执行以下操作:

add_action( \'init\', \'create_post_type\' );
function create_post_type() {
    register_post_type( \'nonhierarchical_page\',
        array(
            \'labels\' => array(
                \'name\' => __( \'NHPages\' ),
                \'singular_name\' => __( \'NHPage\' )
            ),
            \'public\' => true,
            \'hierarchical\' => false
        )
    );
}

SO网友:samjco

What about:

function wp1482371_page_post_type_args( $args, $post_type ) {

    if ( $post_type == "pages" ) {
        $args[\'hierarchical\'] = false
        );
    }

    return $args;
}
add_filter( \'register_post_type_args\', \'wp1482371_page_post_type_args\', 20, 2 );
结束

相关推荐

通过PHPMyadmin重置管理员密码失败

遵循PHPMyAdmin的说明this article 无法正确重置密码。我进入WP\\U用户,找到我的管理员帐户,单击编辑,输入密码,将下拉列表更改为MD5,单击保存,但当我尝试使用此用户名登录到WP admin时,此密码不起作用。困惑的