web-dev-qa-db-fra.com

Comment appeler des données de champ de catégorie personnalisées dans le thème?

J'essaie d'ajouter deux champs personnalisés à mes catégories (ce que j'ai fait grâce à cette réponse - Des exemples d'ajout de champs personnalisés à l'éditeur de catégories? )

Et maintenant, je dois les appeler dans mon modèle (via un bloc de code personnalisé Headway ).

J'ai vu un tas d'exemples presque là, mais je ne peux tout simplement pas le faire fonctionner!

Si vous pouvez s'il vous plaît laissez-moi savoir le php exact que je devrais utiliser pour appeler l'un des domaines, je vous serais très reconnaissant! Sinon, je recourt à un plugin (et j'en ai déjà beaucoup trop!)

Voici le code

<h1 class="collapseomatic" title="Click for more" id="<?php the_ID();?>">
    <?php single_cat_title(); ?> 
</h1>
<p>FIELD ONE </p>

<div id="target-<?php the_ID(); ?>" 
    class="collapseomatic_content force_content_collapse" 
    style="background: white; min-height: 16px; padding: 5px; width: 95%;">

    <?php echo '<div class="seo_text"><p>'FIELD TWO'</p></div>'; ?>
    <?php echo '<div class="seo_text"><p>'.category_description( $category_id ).'</p> </div>'; ?>       
</div>

METTRE À JOUR

J'ai maintenant essayé de créer une fonction personnalisée

function ddgseo_title1() {
    //get the current term
    $term = get_term_by( 
        'slug', 
        get_query_var('term'), 
        get_query_var('taxonomy') 
    );

    //get the saved category custom fields
    $fields = get_option(MY_CATEGORY_FIELDS);

    if ( isset($fields[$term->term_id]) ) {

        //extract just the needed term fields
        $term_fields = $fields[$term->term_id];

        //Now $term_fields holds all of your category fields so to get a specific field:
        if ( isset($term_fields['_ce4-categoryTitle']) )
            echo $term_fields['_ce4-categoryTitle'];
    }
}

Et j'essaie d'appeler le titre dans le thème html avec .ddgseo_title1() mais encore une fois, pas de chance

1
Kate

Si vous utilisez la méthode suggérée dans la question que vous avez liée, tous les champs de méta de catégorie sont stockés dans une seule option de la table de base de données d'options. Par conséquent, pour obtenir les données de votre thème, vous devez obtenir cette option et extraire le champ. à partir de là, quelque chose comme,

//get the current term
$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
//get the saved category custom fields
$fields = get_option(MY_CATEGORY_FIELDS);
if (isset($fields[$term->term_id])){
    //extract just the needed term fields
    $term_fields = $fields[$term->term_id];
    //Now $term_fields holds all of your category fields so to get a specific field:
    if (isset($term_fields['Field-Name']))echo $term_fields['Field-Name'];
}
1
Bainternet