Salut à tous,
J'ai juste besoin qu'on m'aiguille vers la meilleure solution pour la situation suivante:

J'ai une page d'accueil sur laquelle j'ai 3 div qui contiennent: Une présentation brève, une liste de lien, et des coordonnées.

J'aimerais pouvoir modifier chaque div via l'interface de wordpress. Et je me demandais quelle était la meilleure solution. La première qui me vient en tête c'est de faire une page par div et récupérer le contenu pour chaque page. Mais ça m'a l'air fort bourrain.
Une autre solution serait de ne faire qu'une page avec 3 custom fields. Mais je sais pas si c'est forcément mieux...

C'est très courant comme présentation, alors comment fait-on d'habitude?

Merci!

12 réponses


Moi ce que je ferais c'est un template "home" et de créer la page avec des shortcodes.

Sinon une page d'option dans le backoffice.

Chuck
Auteur

Re,
Merci pour ton indication!
J'ai finalement choisi d'y aller avec une page d'option. J'ai utilisé ton framework pour ça. Mais le souçis, c'est que je n'arrive pas à récupérer les valeurs des options.

Pourtant j'ai un input:

array(
                "name" => "Liens",
                "id" => "barlinks",
                "default" => "this isbaaaarlinksss",
                "type" => "textarea"
        ),

Que je récupère comme ça:

<?php echo get_option('barlinks','aaaa');?>

Et ça me renvoie rien (enfin, là ca me renvoie aaaa).

Pour vérifier, j'ai été voir dans la table wp_options et y'a bien une entrée avec:
option_name à "theme_general"
et
option_value à "a:3:{s:22:"barpresentationmessage";s:162:"Je suis untel et vous êtes sur mon portfolio en ligne.
bla bla bla bla bla";s:8:" barlinks";s:20:" this isbaaaarlinksss";s:10:"barcontact";s:14:"this isContact";}"

Cette syntaxe dans la bdd est normale?

Vous voyez où j'aurais fait une erreur?

Merci d'avance, encore...
Chuck

Regarde bien l'aide du framework les fonctions sont indiquées pour récupérer les informations. Ici il faut utiliser :
theme_get_option(nom du paquet [slug], id de la variable).
Pour récup une option.

Chuck
Auteur

Ah ben merde, c'est ce que j'avais fait à la base mais il me met function undefined.
Du coup, j'ai cherché et suis tombé sur get_option en croyant que c était une erreur sur ta doc.

Bon, donc c'est pas normal qu'il me mette undefined quand j'écris ca?:

<?php echo theme_get_option('theme_general','barlinks');?>

Non tu peux me montrer le code complet de la page options ?

Chuck
Auteur

Yep, voici:

<?php
$options = array(
    "name" => 'Contenu accueil',
        "slug" => "general",
        "options" => array(
    array(
        "name" => 'General',
        "type" => "start"
    ),
        array(
                "name" => "Presentation",
                "id" => "barpresentationmessage",
                "default" => "Hi, it's me",
                "type" => "textarea"
        ),
        array(
                "name" => "Liens",
                "id" => "barlinks",
                "default" => "this is baaaarlinksss",
                "type" => "textarea"
        ),
        array(
                "name" => "Contact",
                "id" => "barcontact",
                "default" => "this is Contaaaaact",
                "type" => "textarea"
        ),
    array(
        "type" => "end"
    ),
    ),
);

Donc si tu fais : <?php echo theme_get_option('general','barlinks');?>ça ne donne rien ? Tu as bien rentré une valeur dans le backoffice ?

Chuck
Auteur

Non, ça me renvoie ça: "Fatal error: Call to undefined function theme_get_option() in"
C'est déjà pas normal qu'il me dise qu'elle est undefined, non?

Oui, j'ai rentré une valeur dans le backoffice.

Au pire, je recommencerai la manip depuis le début, mais je vois pas à coté de quoi je serais passé :/

Bonjour Grafikart,
Merci pour ce Framework fort utile.
Je rencontre le même problème pour afficher la valeur de l'option, en utilisant <?php echo theme_get_option(nom du paquet [slug], id de la variable);?>. Je suis sur la version 3.2.1 de Wordpress et utilise la dernière version du framework.

J'ai déjà utilisé cette fonction dans une version antérieure et je n'avais pas rencontré de problème.
La fonction était get_theme_option(nom du paquet [slug], id de la variable) comme dans ton tuto vidéo.

Merci d'avance

J'ajoute que je vois bien la variable s'enregistrer dans le base de données

Chuck
Auteur

Ca me rassure, j'ai jamais résolu le problème ^^

Je viens de réussir à afficher la variable en utilisant la fonction <?php echo get_theme_option(nom du paquet [slug], id de la variable);?>

Dans mon cas :

Dans le fichier " functions.php" :

'options' => array(
                    array(
                        'name' => 'Vidéo Accueil',
                        'slug' => 'videoAccueil',
                        'icon' => 'options/camera.png',
                        'pages' => array(
                            'Présentation' => 'video'
                        )
                    )
                )

Dans le fichier " videoAccueil_video.php" dans le dossier "options" :

$options = array(
   'name' => 'Vidéo en page d\'accueil',
   'slug' => 'video',
   'options' => array(

        array(
            'name' => 'Ajouter la vidéo Vimeo',
            'type' => 'start'
        ),

        array(
            'name' => 'Identifiant : ',
            'id' => 'vimeoId',
            'default' => '',
            'type' => 'text'
        ),

        array(
            'type' => 'end'
        )
    )
)

J'arrive à afficher le variable si :

'Présentation' => 'video'

et

$options = ....

'slug' => 'video',

....

ont la même valeur, ici dans mon cas 'video'

Je ne sais pas pourquoi, mais ça résoud mon problème, c'est l'essentiel.