自定义邮寄类型档案提供404

时间:2013-07-23 作者:fightstarr20

我正在使用WAMP并安装最新版本的WordPress。我有一个自定义帖子类型创建使用以下。。。

function register_fruit() {
register_post_type(\'fruit\', array(
\'labels\' => array(
\'name\' => __( \'Fruit\' ),
),
\'public\' => true,
\'has_archive\' => true,
\'capability_type\' => \'post\',
\'rewrite\' => array("slug" => "/fruit", "with_front" => false),
\'supports\' => array( \'title\', \'editor\', \'thumbnail\'),
\'taxonomies\' => array(\'category\', \'post_tag\') // this is IMPORTANT
));
}
add_action(\'init\', \'register_fruit\', 0 );
例如,在查看单个项目时,此操作非常有效。。

www.mydomain.com/fruit/apple
www.mydomain.com/fruit/orange
www.mydomain.com/fruit/pear
但如果我尝试查看存档页面,如。。。

www.mydomain.com/fruit
我有404,我看不出问题出在哪里,有人能帮忙吗?

4 个回复
SO网友:GhostToast

你试过刷新永久链接吗?设置->永久链接(无需更改任何内容),然后重试?

SO网友:Milo

删除重写参数中的前导斜杠,如下所示:

\'rewrite\' => array("slug" => "/fruit", "with_front" => false),
应为:

\'rewrite\' => array("slug" => "fruit", "with_front" => false),
并且您的归档将正常工作。

SO网友:zquintana

我有同样的问题,使用:

function cp_init_types() {
register_post_type( \'nursing-home\',
    array(
        \'labels\' => array(
            \'name\' => __( \'Nursing Homes\' ),
            \'singular_name\' => __( \'Nursing Home\' )
        ),
        \'public\' => true,
        \'has_archive\' => true,
        /*\'rewrite\' => array( \'slug\' => \'nursing-homes\', \'with_front\' => true ),
        \'supports\' => array( \'title\', \'editor\', \'custom-fields\', \'thumbnail\' ),
        \'publicly_queryable\' => true,
        \'exclude_from_search\'=> false,
        \'taxonomies\' => array(\'category\',\'post_tag\'),*/
    )
);
/*register_taxonomy(\'location\',\'nursing-home\',[
        \'labels\' => [
            \'name\' => __(\'Locations\'),
            \'singular_name\' => __(\'Location\')
        ],
        \'public\' => true
    ]);*/
}

function add_my_post_types_to_query( $query ) {
if ( is_post_type_archive( "nursing-home" ) && $query->is_main_query() ) {
    $query->set(\'type\',"nursing-home");
    $test = $query->get(\'type\');
    var_dump($test);
}

return $query;
}

add_action( \'pre_get_posts\', \'add_my_post_types_to_query\' );
add_action("init", "cp_init_types");
我添加了“pre\\u get\\u posts”操作,因为我遇到了与fightstar相同的问题。

SO网友:user3445853

我遇到了这个问题,并尝试了所有的解决方案(刷新永久链接、各种重写等),直到我在WP Codex中发现

query_var (布尔值或字符串)(可选)False禁用query\\u var,设置为string使用自定义query\\u var,而不是默认值$taxonomy,即分类法的“名称”。True不被视为有效条目,将导致404个问题。

的确,我有\'query_var\' => true 这导致了我的问题。

结束

相关推荐

自定义邮寄类型档案提供404 - 小码农CODE - 行之有效找到问题解决它

自定义邮寄类型档案提供404

时间:2013-07-23 作者:fightstarr20

我正在使用WAMP并安装最新版本的WordPress。我有一个自定义帖子类型创建使用以下。。。

function register_fruit() {
register_post_type(\'fruit\', array(
\'labels\' => array(
\'name\' => __( \'Fruit\' ),
),
\'public\' => true,
\'has_archive\' => true,
\'capability_type\' => \'post\',
\'rewrite\' => array("slug" => "/fruit", "with_front" => false),
\'supports\' => array( \'title\', \'editor\', \'thumbnail\'),
\'taxonomies\' => array(\'category\', \'post_tag\') // this is IMPORTANT
));
}
add_action(\'init\', \'register_fruit\', 0 );
例如,在查看单个项目时,此操作非常有效。。

www.mydomain.com/fruit/apple
www.mydomain.com/fruit/orange
www.mydomain.com/fruit/pear
但如果我尝试查看存档页面,如。。。

www.mydomain.com/fruit
我有404,我看不出问题出在哪里,有人能帮忙吗?

4 个回复
SO网友:GhostToast

你试过刷新永久链接吗?设置->永久链接(无需更改任何内容),然后重试?

SO网友:Milo

删除重写参数中的前导斜杠,如下所示:

\'rewrite\' => array("slug" => "/fruit", "with_front" => false),
应为:

\'rewrite\' => array("slug" => "fruit", "with_front" => false),
并且您的归档将正常工作。

SO网友:zquintana

我有同样的问题,使用:

function cp_init_types() {
register_post_type( \'nursing-home\',
    array(
        \'labels\' => array(
            \'name\' => __( \'Nursing Homes\' ),
            \'singular_name\' => __( \'Nursing Home\' )
        ),
        \'public\' => true,
        \'has_archive\' => true,
        /*\'rewrite\' => array( \'slug\' => \'nursing-homes\', \'with_front\' => true ),
        \'supports\' => array( \'title\', \'editor\', \'custom-fields\', \'thumbnail\' ),
        \'publicly_queryable\' => true,
        \'exclude_from_search\'=> false,
        \'taxonomies\' => array(\'category\',\'post_tag\'),*/
    )
);
/*register_taxonomy(\'location\',\'nursing-home\',[
        \'labels\' => [
            \'name\' => __(\'Locations\'),
            \'singular_name\' => __(\'Location\')
        ],
        \'public\' => true
    ]);*/
}

function add_my_post_types_to_query( $query ) {
if ( is_post_type_archive( "nursing-home" ) && $query->is_main_query() ) {
    $query->set(\'type\',"nursing-home");
    $test = $query->get(\'type\');
    var_dump($test);
}

return $query;
}

add_action( \'pre_get_posts\', \'add_my_post_types_to_query\' );
add_action("init", "cp_init_types");
我添加了“pre\\u get\\u posts”操作,因为我遇到了与fightstar相同的问题。

SO网友:user3445853

我遇到了这个问题,并尝试了所有的解决方案(刷新永久链接、各种重写等),直到我在WP Codex中发现

query_var (布尔值或字符串)(可选)False禁用query\\u var,设置为string使用自定义query\\u var,而不是默认值$taxonomy,即分类法的“名称”。True不被视为有效条目,将导致404个问题。

的确,我有\'query_var\' => true 这导致了我的问题。

相关推荐