Custom post types : le contenu de l’article ne se met pas à jour ? (Créer un compte)

  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #548338
    pandroid
    Membre
    Chevalier WordPress
    107 contributions

    – Version de WordPress : 4.1.1
    – Thème utilisé : Perso
    – Nom de l’hebergeur : 1&1
    – Adresse du site : http://www.soykje.com/testeur/

    Bonjour à tous,

    Je me permets de poster ici pour un problème sur lequel je m’arrache les cheveux depuis plusieurs jours ! En effet, pour le thème que je développe, j’ai donc un custom post type via lequel je définis une image de page d’accueil. Jusque là tout va bien, mon CPT est créé et l’utilisateur pourra charger son image dans un article du CPT prévu à cet effet. Oui mais… Si l’on modifie l’image de cet article, c’est toujours l’ancienne image qui est retournée en front !!!

    J’ai testé en utilisant the_content(), et là ça marche comme il faut… Sauf que, bien entendu, il me faut une url d’image pour ma page d’accueil (d’où l’utilisation de wp_get_attachment_url), pas l’image :'(

    Je vous transmets donc mon code, n’étant pas encore très familier des CPT il est plus que probable qu’une erreur m’ait échappé…

    Déclaration du CPT « Image d’accueil » (dans un .php appelé par functions.php) :

    <?php

    add_action( 'init', 'register_homeimg' );

    function register_homeimg() {
    register_post_type('homeimg',
    array(
    'labels' => array(
    ‘name’ => ‘Image d’accueil’,
    ‘singular_name’ => ‘Image d’accueil’,
    ‘add_new’ => ‘Ajouter une image d’accueil’,
    ‘add_new_item’ => ‘Ajouter une nouvelle image d’accueil’,
    ‘edit_item’ => ‘Editer une image d’accueil’,
    ‘new_item’ => ‘Nouvelle image d’accueil’,
    ‘view_item’ => ‘Voir l’image d’accueil’,
    ‘search_items’ => ‘Rechercher une image d’accueil’,
    ‘not_found’ => ‘Aucune image d’accueil’,
    ‘not_found_in_trash’ => ‘Aucune image d’accueil dans la corbeille’,
    ‘parent_item_colon’ =>  »,
    ‘menu_name’ => ‘Image d’accueil’
    ),
    ‘public’ => true,
    ‘show_ui’ => true,
    ‘menu_icon’ => ‘dashicons-format-image’,
    ‘capability_type’ => ‘post’,
    ‘hierarchical’ => false,
    ‘menu_position’ => 6,
    ‘supports’ => array(‘title’,’editor’)
    ));
    }

    ?>

    Page d’accueil :

    <?php
    /*
    Template Name: Accueil
    */
    ?>

    <?php get_header(); ?>

    <section id="content" class="home">
    <?php $mainimg = new WP_Query('post_type=homeimg'); ?>
    <?php while ($mainimg -> have_posts()) : $mainimg -> the_post(); ?>

    <?php
    $args = array(
    'post_type' => ‘attachment’,
    ‘post_parent’ => $post->ID,
    ‘post_status’ => null,
    ‘numberposts’ => 1
    );

    $attachments = get_posts($args);
    if ($attachments) {
    foreach ($attachments as $attachment) { ?>

    <p style="background-image:url(<?php echo wp_get_attachment_url($attachment->ID); ?>) »></p>

    <?php
    }
    }
    ?>

    <?php endwhile; ?>
    </section>

    <?php get_footer(); ?>

    J’ai pourtant lu et relu mon code, et je ne vois honnêtement pas pourquoi celui-ci ne marche pas. Enfin je présume que si the_content() fonctionne, il faut chercher du côté du code de la page d’accueil… ?

    Voilà, je m’en remets à vous, merci d’avance pour vos conseils et votre aide !

    #999599
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    bonjour,

    As tu une sauvegarde quelque part?
    comme

    add_action(‘save_post’, ‘save_homeimg’); //function pour la sauvegarde de champs personnalisés
    function save_homeimg()
    {}

    #999600
    pandroid
    Membre
    Chevalier WordPress
    107 contributions

    Bonjour,

    En fait la simple déclaration register_post_type (avec le add_action qui correspond, bien sûr) inclut déjà l’enregistrement de la donnée. Pour preuve d’ailleurs, et comme j’ai pu le re-tester à l’instant, si j’utilise le code suivant pour ma page d’accueil…





    <section id="content" class="home">

    have_posts()) : $mainimg -> the_post(); ?>

    // en remplacement du ‘wp_get_attachment_url’


    </section>

    … alors mes modifications sur le CPT sont bien prises en compte, en direct comme ce devrait être le cas ! Ce qui confirmerait donc, a priori, un problème du côté de l’utilisation de la fonction wp_get_attachment_url, ou du moins son utilisation dans un contexte de CPT…

    Quelqu’un aurait-il déjà rencontré ce genre de difficulté ? Mon utilisation de la fonction wp_get_attachment_url est peut-être incorrecte… ?

    Dans tous les cas, merci d’avance pour vos réponses !

    #999602
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    que donne echo wp_get_attachment_url($attachment->ID) ? il y a quelque chose ou c’est vide?

    #999603
    pandroid
    Membre
    Chevalier WordPress
    107 contributions

    Bonjour,

    Comme je l’ai indiqué en début de post, un site-test est dispo ici : http://www.soykje.com/testeur/

    Comme tu pourras le voir, le code retourne bien un contenu (page d’accueil), mais il s’agit de la première image uploadée dans l’article du CPT. Par la suite, j’avais voulu modifier cette image, mais cette modification n’est malheureusement pas prise en compte (d’où mon topic au départ) lorsque j’utilise wp_get_attachment_url.
    A l’inverse, si j’utilise the_content, les modifications sont bien prises en compte et c’est bien la dernière modification qui est affichée. Mais comme je l’ai dit précédemment, c’est l’url qui m’intéresse dans le cadre de mon intégration, et pas l’image en tant que contenu…

    Des idées ?

    #999601
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    okay.
    oui, pardon, je n’avais pas lu le lien.

    Juste une question au passage, pourquoi une boucle while ?
    (je pose la question car j’avais un cas qui m’envoyait toujours la même chose, et c’était à cause de la boucle)

    #999604
    pandroid
    Membre
    Chevalier WordPress
    107 contributions

    Bonjour,

    J’utilise une boucle « classique », pour récupérer le contenu de mon CPT, vu qu’il est déclaré comme un post… Sauf erreur de ma part (je suis pas expert non plus), c’est la chose à faire.
    Enfin, comme je le disais à l’instant, la fonction the_content me retourne bien le contenu que je souhaite, mais la fonction wp_get_attachment_url, qui devrait fonctionner de façon similaire pour me retourner l’url des pièces joints du post, elle ne fonctionne pas correctement apparemment… Du coup je pense vraiment qu’il s’agit d’un problème de ce côté là… Peut-être que je n’utilise pas la fonction correctement, dans ce contexte ?

7 sujets de 1 à 7 (sur un total de 7)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.