Support » Plugin: Posts 2 Posts » [Plugin: Posts 2 Posts] get_current_screen error on 1.4.1, Ajax delete not working on 1.4.2-alpha2

  • Resolved dangranata


    This is a transfer from another thread.

    I’m getting a strange error – which seems to be isolated to a single (local) install with a custom theme. I’m fully prepared to fix my code, I’m just not sure where to begin.

    WP 3.4.1
    P2P 1.4.2-alpha2 (also happened with 1.4.1, but not previous versions)

    Upon activation, I get a fatal error:

    Call to undefined function get_current_screen() in [localpath]/wp-content/plugins/posts-to-posts/core/url-query.php on line 27

    I deactivated all other plugins, same error. I did try this with a different install (one that has no P2P connections yet), and there was no problem.

    Temporarily commenting out the following lines seemed to fix the problem (lines 12-13 in posts-to-posts/core/url-query.php):

    if ( is_admin() )
    add_action( ‘pre_user_query’, array( __CLASS__, ‘user_query’ ), 9 );

    But I really would rather ensure the problem won’t crop up again once we upgrade. I know not knowing specifics about my install will make it difficult to diagnose, but I’m crawling line by line through any P2P code and I can’t figure out what would trigger that error – so I’m hoping that it might be caused by something obvious (an action hooked too early?) that changed in the most recent version.


    UPDATE 9-7-12
    I have confirmed that whatever was causing the “get_current_screen not found” error does NOT happen with 1.4.2-alpha2. Upgrading to the alpha resolves that issue, and downgrading to 1.4.1 brings it back.

    I’m fine to sit on 1.4.2-alpha2 until 1.4.2 is released – but now I’m experiencing different bad behavior: when I try to delete all connections to a post in the post edit screen (by clicking on the trash icon at the top of the connected posts list and confirming) – the connections do not seem to be deleted: the javascript callback fires, removing the connected posts list on the screen, but upon reloading the edit page or saving/updating the post, the connected posts reappear: it seems the connections are still in the DB after the Ajax call.

    I’m once again fully willing to believe the custom theme functions I’m writing for this particular installation might be having an effect, but I had no problems prior to 1.4.1, and I’m not getting any helpful notices from WP_DEBUG or javascript consoles. I’m hoping the description above might help narrow down the problem so I can squash the bug, wherever it may lay. Thoughts?

Viewing 3 replies - 1 through 3 (of 3 total)
  • UPDATE – I’ve isolated one of the problems, scribu, in case it’s something to consider.

    The issue with 1.4.1 and get_current_screen seems to be that I have a helper function that is pulling a list of users (via WP’s get_users), which is triggering P2P_URL_Query::user_query before get_current_screen is available. I’m working on excluding this function from the pre_user_query filter altogether, but I think it’s worth being aware of: the pre_user_query filter is set up at init, but get_current_screen isn’t available at init, according to – it is available for any action after admin_init, presumably with the hook helpfully called current_screen. You may have already resolved this – I wasn’t having this problem with 1.4.2-alpha2.

    I also have some updated info on the Ajax deletion in 1.4.2-alpha2:

    Individual deletion (by clicking on the trash icon in a row corresponding to a connected post in the above mentioned list) seems to work perfectly. It’s only mass deletion (delete all connections) that doesn’t seem to update the DB. Thanks!

    Plugin Author scribu


    Thanks for the thorough investigation.

    A similar problem with get_current_screen() was also reported on github:

    As for the mass deletion, I can reproduce it:

    Plugin Author scribu


    Both issues should be taken care of in the development version (1.4.2-beta).

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘[Plugin: Posts 2 Posts] get_current_screen error on 1.4.1, Ajax delete not working on 1.4.2-alpha2’ is closed to new replies.