[Résolu] Afficher au bas des post la valeur d’un custom field (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #516945
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.4.2
    – Version de PHP/MySQL : php5
    – Thème utilisé : perso créé sur Artisteer
    – Extensions en place :
    – Nom de l’hebergeur :
    – Adresse du site :

    Problème(s) rencontré(s) :

    j’ai plusieurs centaines de post. Chacun présente un bouquin et possède un champ personnalisé: Prix.
    Comment faire pour afficher la valeur du prix dans chaque post automatiquement?

    Merci de vos réponses.
    ++

    #864769
    super69
    Membre
    Chevalier WordPress
    325 contributions

    Il suffit d’aller dans le fichier single.php et d’afficher le champ personnalisé avec la fonction get_post_meta.

    #864770
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Merci pour cette réponse. Je pense qu’elle est très claire pour un développeur php, mais pour moi elle reste assez obscure.
    J’ai ouvert le fichier single.php de mon thème,
    un peu mois de 50 ligne avec du if, while etc. Je ne vois pas du tout quelle script je dois insérer et où pour faire que cela marche…
    je veux bien mettre « get_post_meta » à la fin de ce fichier mais je ne pense pas que cela fasse quoi que ce soit.
    Donc merci pour cette réponse. Serait-il possible d’avoir plus de précision pour savoir quoi mettre et où?
    avant ça:

    je mets ça:

    ???????????
    Merci
    ++

    #864771
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Ton thème a été fait avec Artisteer qui produit en général du code un peu touffu. Il serait d’ailleurs intéressant qu’ils proposent une gestion des custom fields (je ne connais pas la version 4).

    Pour te répondre, il va falloir que tu affiches le code de ton single.php. Ce qui ne veut pas dire que cela se passera dans ce fichier, il est tout à fait possible que le thème fasse appel à des fonctions d’affichage placées ailleurs, en ce cas, il faudra dérouler la pelote pour trouver le bon endroit.

    #864772
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Salut, merci pour cette réponse. Effectivement, il va falloir que je montre l’intérieur de mon single.php produit par artisteer v4 d’ailleurs. Ainsi, le single.php:



    theme_get_previous_post_link(‘« %link’),
    ‘prev_link’ => theme_get_next_post_link(‘%link »’)
    )
    );
    }
    while (have_posts()) {
    the_post();
    get_template_part(‘content’, ‘single’);
    /* Display comments */
    if (theme_get_option(‘theme_allow_comments’)) {
    comments_template();
    }
    }
    /* Display navigation to next/previous posts when applicable */
    if (theme_get_option(‘theme_bottom_single_navigation’)) {
    theme_page_navigation(
    array(
    ‘next_link’ => theme_get_previous_post_link(‘« %link’),
    ‘prev_link’ => theme_get_next_post_link(‘%link »’)
    )
    );
    }
    } else {
    theme_404_content();
    }
    ?>

    Merci pour cete préciseuse aide 🙂
    ++

    #864773
    Guy
    Participant
    Maître WordPress
    14817 contributions

    bon… il faut dérouler la pelote 🙂 on va donc aller voir dans le fichier content-single.php si il existe, sinon, cela sera content.php. Peux tu le montrer?

    #864774
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Déroulons 🙂

     theme_get_post_id(),
    ‘class’ => theme_get_post_class(),
    ‘title’ => theme_get_meta_option($post->ID, ‘theme_show_post_title’) ? get_the_title() :  »,
    ‘heading’ => theme_get_option(‘theme_single_article_title_tag’),
    ‘before’ => theme_get_metadata_icons(‘date,author,edit’, ‘header’),
    ‘content’ => theme_get_content(),
    ‘after’ => theme_get_metadata_icons( », ‘footer’)
    )
    );
    ?>

    Merci 😉

    #864775
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Alors la!!!! Aucune idée de l’endroit où peut se trouver la déclaration de la fonction.

    Il va falloir que tu recherches dans les fichiers du thème la fonction appelée: theme_get_content()

    #864776
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Ok, merci tout de même….

    #864777
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Sinon, une solution rapide était de le rajouter dans single.php, ce n’est pas la meilleure solution à mon avis, mais cela évite de trop chercher, tu pourrais par exemple mettre:

    $montant = get_post_meta(get_the_ID(), ‘prix’, true);
    if(!empty($montant)) echo « Prix: $montant »;

    juste en dessous de get_template_part(‘content’, ‘single’);

    #864778
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Excellent. En fait je n’aime pas des masses les solutions en dur, mais là, je ne peux dire que merci. Temporairement, ca pourra faire l’affaire.
    Merci!
    ++:D

    #864779
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    hello, après esais, cela ne semble pas fonctionner. Soit le prix ne s’affiche pas, soit il y a une erreur php…
    Selon le dernier message, voici comment j’ai intéger les lignes proposées:

    get_template_part(‘content’, ‘single’);
    $montant = get_post_meta(get_the_ID(), ‘Prix’, true);
    if(!empty($montant)) echo « Prix: $montant »;

    Merci

    #864780
    Guy
    Participant
    Maître WordPress
    14817 contributions

    bon… j’enleve résolu, quelle est l’erreur?

    #864781
    kh4y3m
    Participant
    Initié WordPress
    42 contributions

    Au temps pour moi, problème de cahce, tout fonctionne parfaitement. C’est bien résolu. Peut être pas génériquement, mais en tout cas ça me convient trè bien. Salut, et bonne journée.

    #864782
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ok, je remets résolu 🙂

15 sujets de 1 à 15 (sur un total de 15)
  • Vous devez être connecté pour répondre à ce sujet.