web-dev-qa-db-fra.com

Afficher l'éditeur par défaut sur la page de blog (Panneau d'administration)

Dans WordPress 4.2, il incluait une fonctionnalité Nice qui indiquait quelle page était la page de garde et quelle page était le blog (Derniers messages). Malheureusement, il supprime également l'éditeur par défaut de la page affectée pour afficher les derniers messages et affiche plutôt le message suivant:

Vous êtes en train de modifier la page qui affiche vos derniers messages.

Je souhaite attribuer un contenu à la page du blog afin d'afficher ci-dessus mes derniers messages via:

get_post_field( 'post_content', get_option( 'page_for_posts' ) );

Comment puis-je rajouter le WP Editor par défaut à la page de blog du panneau d'administration sans ajouter de metabox distinct?

6
Howdy_McGee

Dans WordPress 4.2, l’éditeur a été supprimé de la page assignée pour afficher les derniers messages pour une raison quelconque. La fonction suivante ci-dessous ( la solution originale trouvée ici par crgeary ) ré-ajoutera l'éditeur et supprimera la notification:

Vous êtes en train de modifier la page qui affiche vos derniers messages.

Voici quelques informations sur les crochets utilisés:


if( ! function_exists( 'fix_no_editor_on_posts_page' ) ) {

    /**
     * Add the wp-editor back into WordPress after it was removed in 4.2.2.
     *
     * @param Object $post
     * @return void
     */
    function fix_no_editor_on_posts_page( $post ) {
        if( isset( $post ) && $post->ID != get_option('page_for_posts') ) {
            return;
        }

        remove_action( 'edit_form_after_title', '_wp_posts_page_notice' );
        add_post_type_support( 'page', 'editor' );
    }
    add_action( 'edit_form_after_title', 'fix_no_editor_on_posts_page', 0 );
 }

Modifier pour WordPress 4.9

À partir de WordPress 4.9.6, cela ne permet pas de réinstaller l'éditeur. Il semble que l'action edit_form_after_title ne soit pas appelée assez tôt. Cette modification, appelée sur le premier hook non obsolète après la suppression de l'éditeur dans edit-form-advanced.php, semble fonctionner correctement.

Outre le changement de crochet, le nombre de paramètres a également changé.

if( ! function_exists( 'fix_no_editor_on_posts_page' ) ) {

    function fix_no_editor_on_posts_page( $post_type, $post ) {
        if( isset( $post ) && $post->ID != get_option('page_for_posts') ) {
            return;
        }

        remove_action( 'edit_form_after_title', '_wp_posts_page_notice' );
        add_post_type_support( 'page', 'editor' );
    }

    add_action( 'add_meta_boxes', 'fix_no_editor_on_posts_page', 0, 2 );

 }
14
Howdy_McGee