web-dev-qa-db-fra.com

Émission post-automatique

J'ai créé un type d'article personnalisé sans titre ni éditeur et j'utilise des taxonomies, des champs personnalisés et des pièces jointes personnalisés pour créer un article. Mon titre est généré à partir de taxonomies et de champs personnalisés (ou "ID #" si rien d'autre n'est défini). Voici le code du titre (probablement un peu de polissage):

function custom_post_type_title ( $post_id ) {
    global $wpdb;
    if ( get_post_type( $post_id ) == 'cars' ) {
        $autos = wp_get_object_terms($post_id, 'brand');
            $brand= '';
            $model= '';
                foreach ( $autos as $auto ) {
                    if ( $auto->parent == 0) {
                        $brand = ' '.$auto->name;
                    } else {
                        $model .= ' '.$auto->name;
                    }
                }
        $engine = get_post_meta($post_id, 'Engine', true);
        if ($engine != '') { $engine = ', '.$engine.'l'; }
        $title = $brand.$model.$engine;
        if ($title == '') { $title = 'ID '.$post_id; }
        $slug = sanitize_title('id-'.$post_id.$brand.$model.$engine);
        $where = array( 'ID' => $post_id );
        $wpdb->update( $wpdb->posts, array( 'post_title' => $title, 'post_name' => $slug), $where );
    }
}

add_action('init', 'cars_save_post');
function cars_save_post($post_id) {
        if ( ! defined( 'DOING_AUTOSAVE' ) && ! DOING_AUTOSAVE ) return;
        add_action('save_post', 'custom_post_type_title', 100);
        add_action('publish_post', 'custom_post_type_title', 100);
}

Le problème, c'est que si je joins une image et que je quitte le message, ce message sera enregistré, mais n'apparaîtra pas comme brouillon dans ma liste de messages. Je ne peux l'atteindre que par le biais du lien "attaché à" des médias.

Je ne sais pas si c'est un bogue ou autre chose, mais j'aimerais voir ces publications dans ma liste de gestion des publications. Des solutions?

EDIT:

Peut-être que je n'étais pas assez clair. Essayez juste ce scénario:

  • Ajouter un nouveau poste (un poste régulier fera l'affaire);
  • Téléchargez une image sur celle-ci;
  • Gardez tout le reste vide;
  • Ne sauvegardez pas le post;
  • Quitter la page

Maintenant, si vous consultez votre page de messages, vous ne trouverez pas de "brouillon automatique". Mais si vous vérifiez votre page de média, l'image que vous venez de télécharger sera attachée à "Brouillon automatique", auquel vous pouvez accéder à partir de là. Même si vous supprimez cette image, cette publication restera.

Je veux simplement garder mon serveur propre, donc si l'auteur fait une erreur et oublie de sauvegarder son message, il devrait pouvoir y accéder facilement via la page des messages.

Ma question était donc la suivante: s’agit-il d’un bogue et comment puis-je le corriger (afficher "Brouillons automatiques" dans la page Messages des auteurs)?

2
Kovas

Vous aurez probablement besoin de modifier les colonnes affichées dans votre liste de publications personnalisées afin que celle-ci ne dépende pas uniquement du titre de la publication.

J'ai une situation similaire, avec un type de message personnalisé qui consiste uniquement en une "image sélectionnée" (et un métabox personnalisé "lien"). J'ai modifié la liste des publications pour afficher l'image liée à la page de modification de publication.

Vous devrez peut-être faire quelque chose de similaire.

1
Chip Bennett