web-dev-qa-db-fra.com

Activer les post-it sur Post_type personnalisé

j'ai ce post_type personnalisé: tvr_apartment

function custom_post_apartment() {
        $labels = array(
            'name'                => 'Apartments',
            'singular_name'       => 'Apartment',
            'add_new'             => 'Add New',
            'add_new_item'        => 'Add New Apartment',
            'edit_item'           => 'Edit Apartment',
            'new_item'            => 'New Apartment',
            'all_items'           => 'All Apartments',
            'view_item'           => 'View Apartment',
            'search_items'        => 'Search Apartments',
            'not_found'           => 'No apartments found',
            'not_found_in_trash'  => 'No apartments found in trash',
            'parent_item_colon'   => '',
            'menu_name'           => 'Apartments'
        );

        $args = array(
            'labels' => $labels,
            'public' => true,
            'query_var' => true,
            'rewrite' => true,
            'capability_type' => 'post',
            'has_archive' => true,
            'hierarchical' => false,
            'menu_position' => null,
            'taxonomies' => array('rf_apartment_feature'),
            'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' )
        );

        register_post_type( 'tvr_apartment', $args );
    }

Et je voudrais activer la fonctionnalité post-collant à elle,

enter image description here

J'ai cherché ici: http://codex.wordpress.org/Function_Reference/post_type_supports

Mais il me semble que ce n’est pas la voie à suivre, des idées?

4
Toni Michel Caubet

Selon un ticket de traçage étendu et de longue durée # 12702 , les types de post personnalisés ne supportent pas (et ne le feront probablement pas) des fonctionnalités persistantes.

Il n'est probablement pas impossible de le réutiliser (avec une quantité impalpable de collants et de cas Edge) pour CPT dans un site personnalisé, mais à mon avis, une solution personnalisée (probablement basée sur des champs personnalisés) serait une approche plus pratique et plus propre.

5
Rarst

J'ai réussi à obtenir les éléments suivants au travail. Laissez-moi vous décrire la technique pour que vous puissiez décider de l’utiliser ou non.

  1. le code utilise deux crochets, l'un déclenché juste avant que les méta-boîtes "latérales" soient placées et l'autre immédiatement après la section "date/heure" de la méta-boîte de publication.

  2. le premier point d'ancrage (avant) enregistre le type de publication d'origine, puis passe à "publication", wordpress pense qu'il s'agit d'une publication et définit les champs par défaut propres au type de publication "publication".

  3. le deuxième crochet (après) réinitialisera le type de message à son origine.

Si vous rencontrez des problèmes ou si vous rencontrez des problèmes d'utilisation imprévus dans lesquels cette technique peut échouer, veuillez y répondre.

// see /wp-admin/edit-form-advanced.php .. since wp 2.5.0
add_action( 'submitpost_box', function() {
    // fyi .. unable to use "post_submitbox_minor_actions" action (/wp-admin/includes/meta-boxes.php) because $post_type is set early
    global $post;
    if ( isset( $post->post_type ) && in_array( $post->post_type, array( 'post_type_1', 'post_type_2' ) ) ) {
        echo 'before'; // debug
        $post->post_type_original = $post->post_type;
        $post->post_type = 'post';
    }
} );

// see /wp-admin/includes/meta-boxes.php .. since wp 2.9.0
add_action( 'post_submitbox_misc_actions', function() {
    global $post;
    if ( isset( $post->post_type_original ) && in_array( $post->post_type_original, array( 'post_type_1', 'post_type_2' ) ) ) {
        echo 'after'; // debug
        $post->post_type = $post->post_type_original;
        unset( $post->post_type_original );
    }
} );

Remarque: la tâche ci-dessus consiste à ajouter l'option à l'interface utilisateur. Il vous reste à vérifier et à travailler avec des post-it collants dans vos templates/output .. quelque chose comme ce qui suit (sans le plugin) ):

https://wordpress.stackexchange.com/a/185915/466

2
farinspace