[wp-trac] [WordPress Trac] #31140: WordPress 4.0 upgrade caused 404 on single custom post types

WordPress Trac noreply at wordpress.org
Tue Feb 3 06:25:35 UTC 2015


#31140: WordPress 4.0 upgrade caused 404 on single custom post types
-------------------------------+------------------------------
 Reporter:  MarjWyatt          |       Owner:
     Type:  defect (bug)       |      Status:  new
 Priority:  normal             |   Milestone:  Awaiting Review
Component:  Posts, Post Types  |     Version:  4.0
 Severity:  normal             |  Resolution:
 Keywords:                     |     Focuses:
-------------------------------+------------------------------
Description changed by dd32:

Old description:

> I was alerted to an issue with viewing single custom post types. I
> reverted the site to WordPress v3.9.1 and this was not failing.
>
> Today, I went through the tedious process of troubleshooting the problem.
> When I upgraded to WordPress 4.0, the code failed.
>
> I used the following steps to research the problem further:
> 1) I enabled the WordPress default theme, the code worked.
> 2) Re-enabled my theme and disabled all the plugins to determine whether
> or not there was a plugin conflict. There was not.
>
> I deduced the problem was in the theme code I'd written.
>
> I started with functions.php and found this bit of code:
> `// Manually protest wsg-intros because WLM doesn't
> add_action( 'pre_get_posts', 'protect_wsg_intros' );
> function protect_wsg_intros() {
>     if ( ( is_post_type_archive ( 'wsg-intros' ) ) && ( !
> is_user_logged_in() ) ) {
>         wp_redirect( 'http://localhost/wsg/oops-this-content-is-members-
> only' );
>     }
>     elseif ( ( is_singular ( 'wsg-intros' ) ) && ( ! is_user_logged_in()
> ) ) {
>         wp_redirect( 'http://localhost/wsg/oops-this-content-is-members-
> only' );
>     }
> }`
>
> When I remarked out the elseif statement, the single custom post type
> worked on my theme with all plugins enabled.
>
> Great! Problem solved! But the solution leaves me with a question. Why
> would that elseif statement cause a 404 on the single custom post type
> view with the upgrade to WordPress 4.0?  Is this a bug?

New description:

 I was alerted to an issue with viewing single custom post types. I
 reverted the site to WordPress v3.9.1 and this was not failing.

 Today, I went through the tedious process of troubleshooting the problem.
 When I upgraded to WordPress 4.0, the code failed.

 I used the following steps to research the problem further:
 1) I enabled the WordPress default theme, the code worked.
 2) Re-enabled my theme and disabled all the plugins to determine whether
 or not there was a plugin conflict. There was not.

 I deduced the problem was in the theme code I'd written.

 I started with functions.php and found this bit of code:
 {{{
 // Manually protest wsg-intros because WLM doesn't
 add_action( 'pre_get_posts', 'protect_wsg_intros' );
 function protect_wsg_intros() {
     if ( ( is_post_type_archive ( 'wsg-intros' ) ) && ( !
 is_user_logged_in() ) ) {
         wp_redirect( 'http://localhost/wsg/oops-this-content-is-members-
 only' );
     }
     elseif ( ( is_singular ( 'wsg-intros' ) ) && ( ! is_user_logged_in() )
 ) {
         wp_redirect( 'http://localhost/wsg/oops-this-content-is-members-
 only' );
     }
 }
 }}}
 When I remarked out the elseif statement, the single custom post type
 worked on my theme with all plugins enabled.

 Great! Problem solved! But the solution leaves me with a question. Why
 would that elseif statement cause a 404 on the single custom post type
 view with the upgrade to WordPress 4.0?  Is this a bug?

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/31140#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list