Support » Plugin: Edit Flow » Workaround / fix for serious conflict with Role Scoper

  • A serious conflict exists between Edit Flow and Role Scoper versions prior to 1.3.34.

    Edit Flow defines a custom taxonomy named “post_status”. This is problematic because WordPress applies the following hooks:

    • action “edit_{$taxonomy}”
    • filter “edit_{$post_field}”

    Due to this ambiguity in the API, if a plugin correctly registers an action handler for the term editing hook “edit_post_status”, that function will also be applied as a filter on the post field filter “edit_post_status”.

    The result is that the action handler will push a null value into the post field filter, causing WordPress to default the post status from Private to Public upon publish or update. This will happen whenever any plugin or theme does this:

    add_action( 'edit_post_status', 'my_post_status_term_update_handler' );

    So I take the blame for stepping into that trap but technically I have to fault Edit Flow for creating the trap, and WP register_taxonomy() for allowing it to be created.

    Again, this conflict causes a Private post or page to be switched to Public on initial publishing or update.

    The workaround is to modify Role Scoper Options as follows. Navigate to Roles > Options > Realm. In the “Taxonomy Usage” section, uncheck “post_status”. Then click the Update button.

    Role Scoper version 1.3.34 is also available to eliminate the conflict. Following the workaround or version update, you will still need to manually change any affected posts/pages back to Private visibility and re-save them.

  • The topic ‘Workaround / fix for serious conflict with Role Scoper’ is closed to new replies.