操作初始化挂钩和GET_POST_TYPE

时间:2014-03-27 作者:Michał Kalkowski

为什么我要注册自定义帖子类型add_action( \'init\', \'custom_post_type\' ) 它在返回的数组中不显示的钩子get_post_types 作用示例:

function test(){
    $args = array(
            \'public\'          => true,
            \'publicly_queryable\' => true,
            \'show_ui\'         => true,
            \'query_var\'       => true,
            \'exclude_from_search\' => true,
            \'hierarchical\'    => false,
            \'has_archive\'     => false,

        ); 

        register_post_type( \'test\', $args );
}
add_action( \'init\', \'test\' );
print_r(get_post_types()); 
Array
(
    [post] => post
    [page] => page
    [attachment] => attachment
    [revision] => revision
    [nav_menu_item] => nav_menu_item
    //no test post type in array
)
但如果我只运行函数test() 岗位类型test 出现在get_post_type 大堆

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

因为您在函数中调用了get\\u post\\u types()。在“init”操作之前执行的php。看这张照片http://www.rarst.net/images/wordpress_core_load.png

如果在功能测试中添加回声

function test(){
    $args = array(
        \'public\'          => true,
        \'publicly_queryable\' => true,
        \'show_ui\'         => true,
        \'query_var\'       => true,
        \'exclude_from_search\' => true,
        \'hierarchical\'    => false,
        \'has_archive\'     => false,

    ); 

    register_post_type( \'test\', $args );

    echo \'HELLO!!\';

}
add_action( \'init\', \'test\' );

print_r(get_post_types()); 
您将在自定义字段数组之前看到,然后看到“Hello!“字符串!

SO网友:cybmeta

在代码中,您正在执行get_post_types() 在注册帖子类型之前。例如,尝试以下操作:

function test(){
    $args = array(
        \'public\'          => true,
        \'publicly_queryable\' => true,
        \'show_ui\'         => true,
        \'query_var\'       => true,
        \'exclude_from_search\' => true,
        \'hierarchical\'    => false,
        \'has_archive\'     => false,

    ); 

    register_post_type( \'test\', $args );

    print_r(get_post_types());

}
add_action( \'init\', \'test\' );
如果你打电话,也会得到类似的结果get_post_types() 在您的模板或Wordpress之后的任何其他情况下init 事件

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $