WordPress.org

Make WordPress Core

Ticket #22289: 22289.patch

File 22289.patch, 6.1 KB (added by ethitter, 5 years ago)
  • wp-admin/revision.php

     
    2828        if ( !$post = get_post( $revision->post_parent ) )
    2929                break;
    3030
     31        // Revision context to aid wp_post_revisions filter
     32        $context = 'admin-' . $action;
     33
    3134        // Revisions disabled and we're not looking at an autosave
    32         if ( ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {
     35        if ( ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'revision' ) ) || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {
    3336                $redirect = 'edit.php?post_type=' . $post->post_type;
    3437                break;
    3538        }
     
    7073        else
    7174                break; // Don't diff two unrelated revisions
    7275
    73         if ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) { // Revisions disabled
     76        // Revision context to aid wp_post_revisions filter
     77        $context = 'admin-' . $action;
     78
     79        if ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'left_revision', 'right_revision' ) ) || !post_type_supports($post->post_type, 'revisions') ) { // Revisions disabled
    7480                if (
    7581                        // we're not looking at an autosave
    7682                        ( !wp_is_post_autosave( $left_revision ) && !wp_is_post_autosave( $right_revision ) )
     
    111117        if ( !current_user_can( 'read_post', $revision->ID ) || !current_user_can( 'read_post', $post->ID ) )
    112118                break;
    113119
     120        // Revision context to aid wp_post_revisions filter
     121        $context = 'admin-' . $action;
     122
    114123        // Revisions disabled and we're not looking at an autosave
    115         if ( ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {
     124        if ( ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'revision' ) ) || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {
    116125                $redirect = 'edit.php?post_type=' . $post->post_type;
    117126                break;
    118127        }
     
    209218
    210219<?php
    211220
     221// Revision context to aid wp_post_revisions filter
     222$context = 'admin';
     223
    212224$args = array( 'format' => 'form-table', 'parent' => true, 'right' => $right, 'left' => $left );
    213 if ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') )
     225if ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'left', 'right' ) ) || !post_type_supports($post->post_type, 'revisions') )
    214226        $args['type'] = 'autosave';
    215227
    216228wp_list_post_revisions( $post, $args );
  • wp-includes/class-wp-xmlrpc-server.php

     
    35353535                        return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit posts.' ) );
    35363536
    35373537                // Check if revisions are enabled.
    3538                 if ( ! WP_POST_REVISIONS || ! post_type_supports( $post->post_type, 'revisions' ) )
     3538                $context = 'xmlrpc-get';
     3539                if ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'blog_id', 'username' ) ) || ! post_type_supports( $post->post_type, 'revisions' ) )
    35393540                        return new IXR_Error( 401, __( 'Sorry, revisions are disabled.' ) );
    35403541
    35413542                $revisions = wp_get_post_revisions( $post_id );
     
    35643565         *
    35653566         * @since 3.5.0
    35663567         *
     3568         * @uses apply_filters
    35673569         * @uses wp_restore_post_revision()
    35683570         *
    35693571         * @param array $args Method parameters. Contains:
     
    36023604                        return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );
    36033605
    36043606                // Check if revisions are disabled.
    3605                 if ( ! WP_POST_REVISIONS || ! post_type_supports( $post->post_type, 'revisions' ) )
     3607                $context = 'xmlrpc-restore';
     3608                if ( ! apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post', 'revision', 'blog_id', 'username' ) ) || ! post_type_supports( $post->post_type, 'revisions' ) )
    36063609                        return new IXR_Error( 401, __( 'Sorry, revisions are disabled.' ) );
    36073610
    36083611                $post = wp_restore_post_revision( $revision_id );
  • wp-includes/post.php

     
    49324932 * @subpackage Post_Revisions
    49334933 * @since 2.6.0
    49344934 *
     4935 * @uses apply_filters()
    49354936 * @uses _wp_put_post_revision()
    49364937 *
    49374938 * @param int $post_id The ID of the post to save as a revision.
     
    49424943        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
    49434944                return;
    49444945
    4945         // WP_POST_REVISIONS = 0, false
    4946         if ( ! WP_POST_REVISIONS )
     4946        // Revision quantity
     4947        $context = 'save';
     4948        $revision_qty = apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post_id' ) );
     4949
     4950        // $revision_qty = 0, false
     4951        if ( ! $revision_qty )
    49474952                return;
    49484953
    49494954        if ( !$post = get_post( $post_id, ARRAY_A ) )
     
    49574962
    49584963        $return = _wp_put_post_revision( $post );
    49594964
    4960         // WP_POST_REVISIONS = true (default), -1
    4961         if ( !is_numeric( WP_POST_REVISIONS ) || WP_POST_REVISIONS < 0 )
     4965        // $revision_qty = true (default), -1
     4966        if ( !is_numeric( $revision_qty ) || $revision_qty < 0 )
    49624967                return $return;
    49634968
    49644969        // all revisions and (possibly) one autosave
    49654970        $revisions = wp_get_post_revisions( $post_id, array( 'order' => 'ASC' ) );
    49664971
    4967         // WP_POST_REVISIONS = (int) (# of autosaves to save)
    4968         $delete = count($revisions) - WP_POST_REVISIONS;
     4972        // $revision_qty = (int) (# of autosaves to save)
     4973        $delete = count($revisions) - $revision_qty;
    49694974
    49704975        if ( $delete < 1 )
    49714976                return $return;
     
    52185223 * @subpackage Post_Revisions
    52195224 * @since 2.6.0
    52205225 *
     5226 * @uses apply_filters()
    52215227 * @uses get_children()
    52225228 *
    52235229 * @param int|object $post_id Post ID or post object
    52245230 * @return array empty if no revisions
    52255231 */
    52265232function wp_get_post_revisions( $post_id = 0, $args = null ) {
    5227         if ( ! WP_POST_REVISIONS )
     5233        $context = 'get';
     5234        $revision_qty = apply_filters( 'wp_post_revisions', WP_POST_REVISIONS, compact( 'context', 'post_id', 'args' ) );
     5235
     5236        if ( ! $revision_qty )
    52285237                return array();
     5238
    52295239        if ( ( !$post = get_post( $post_id ) ) || empty( $post->ID ) )
    52305240                return array();
    52315241