admin管理员组

文章数量:1405768

I've been battling with this for a while. I have a CPT created with PostTypes (I have used this library many many times in other projects w/o problems):

$volunteer = new PostType( 'volunteer' );
    $volunteer->options(
        array(
            'supports'     => array( 'title' ),
            'capability_type'    => 'post',
            'publicly_queryable' => true,
            'show_in_rest' => false,
            'has_archive'  => true,
            'public'       => true,
            'show_ui'      => true,
            'rewrite'      => array(
                'slug'     => 'volunteers',
            ),
        )
    );
    $volunteer->icon( 'dashicons-groups' );
    $volunteer->register();

I have opened Options->Permalinks and saved settings so that permalinks will display as Post name.

I have created a couple of volunteer posts.

In one page I am using a custom query to bring the results. I create a link to the post by using the permalink which renders this URL:

http://localhost:8888/compeer/volunteer-2/

Which is odd because (AFAIK) should be:

http://localhost:8888/compeer/volunteers/volunteer-2/

When I click the link, I get a 404. When I type in the second permalink, I immediately get sent to the home page, it does not show an error. I have tried to debug this in index.php but by the time the breakpoint hits, it's referring to info on the page.

I have added archive-volunteer.php and single-volunteer.php and they never get invoked no matter what I do.

This has really left me baffled, I don't think I'm making a careless mistake anywhere.

Has anyone experience anything like this before or can recommend any tools that might lead me in the right direction? I already have installed Show Current Template.

Thanks in advance!

I've been battling with this for a while. I have a CPT created with PostTypes (I have used this library many many times in other projects w/o problems):

$volunteer = new PostType( 'volunteer' );
    $volunteer->options(
        array(
            'supports'     => array( 'title' ),
            'capability_type'    => 'post',
            'publicly_queryable' => true,
            'show_in_rest' => false,
            'has_archive'  => true,
            'public'       => true,
            'show_ui'      => true,
            'rewrite'      => array(
                'slug'     => 'volunteers',
            ),
        )
    );
    $volunteer->icon( 'dashicons-groups' );
    $volunteer->register();

I have opened Options->Permalinks and saved settings so that permalinks will display as Post name.

I have created a couple of volunteer posts.

In one page I am using a custom query to bring the results. I create a link to the post by using the permalink which renders this URL:

http://localhost:8888/compeer/volunteer-2/

Which is odd because (AFAIK) should be:

http://localhost:8888/compeer/volunteers/volunteer-2/

When I click the link, I get a 404. When I type in the second permalink, I immediately get sent to the home page, it does not show an error. I have tried to debug this in index.php but by the time the breakpoint hits, it's referring to info on the page.

I have added archive-volunteer.php and single-volunteer.php and they never get invoked no matter what I do.

This has really left me baffled, I don't think I'm making a careless mistake anywhere.

Has anyone experience anything like this before or can recommend any tools that might lead me in the right direction? I already have installed Show Current Template.

Thanks in advance!

Share Improve this question edited Dec 9, 2019 at 6:47 csaborio asked Dec 9, 2019 at 6:17 csaboriocsaborio 1122 silver badges13 bronze badges 4
  • 1 If you register the post type with register_post_type(), rather than this library, does it work? – Jacob Peattie Commented Dec 9, 2019 at 6:33
  • 1 I can't see anything in the documentation for ACF Builder about new PostType( 'volunteer' ). There's no PostType class in WordPress either. Where is this coming from? – Jacob Peattie Commented Dec 9, 2019 at 6:35
  • I tried and by doing so I copied a sample from codex.wordpress/Function_Reference/register_post_type. With that code I do NOT get the problematic redirection when I created a post type "books", which is progress. I'll try and troubleshoot to see what is causing this, but thanks for your suggestion! :-) – csaborio Commented Dec 9, 2019 at 6:44
  • You are right, @Jacob, my apologies. The class package is PostTypes, not ACF Builder-> posttypes.jjgrainger.co.uk I'll fix the question. – csaborio Commented Dec 9, 2019 at 6:47
Add a comment  | 

1 Answer 1

Reset to default 0

After hours of debugging I noticed that the problem was only reproduced when I used the library. Even if I used register_post_type, if I used any other functionality from the library before the register_post_type function call, it would cause some erratic behaviour.

I opted on removing PostTypes from my project and simply sticking to register_post_type and everything works as expected. Third-party libraries are nice and can be a godsend, but unless you are ready to get down and dirty debugging someone else's code when things got astray, I can only recommend to steer clear of them.

Thanks to everyone who took the time to read and pitch in, much appreciated.

本文标签: permalinksCustom Post Type Single Page and Archive Page redirects to Home Page