Dans les parties 1, 2 et 3 de notre série de didacticiels de modèles de boîtes méta personnalisées, nous avons appris à créer une méta-boîte réutilisable qui extrait toutes les informations de champ d'un tableau facile à lire et à dupliquer. Une grande partie des données est simple à utiliser en faisant simplement écho au méta-champ de votre modèle ou à travers une fonction, mais certains champs sont plus complexes et nécessitent un peu plus de précision pour une utilisation correcte. Ce tutoriel vous donnera une idée de base sur la façon d'utiliser ces données et peut être expliqué de nombreuses manières..
WordPress offre plusieurs moyens d'obtenir des méta-données post.
Le moyen le plus simple d’afficher les données est avec the_meta ()
une fonction. Vous pouvez déposer ce droit dans votre single.php modèle, mais il ne vous donnera pas les résultats escomptés. Il s'agit d'une sortie très littérale des données dans une liste non ordonnée précédée de la clé de chaque champ, comme indiqué dans l'image..
Le moyen le plus courant d’obtenir des données sauvegardées dans un champ méta post est avec get_post_meta ()
une fonction. C'est un moyen simple de cibler un champ spécifique et de le stocker dans une variable qui pourra être utilisée ultérieurement.
$ custom_text = get_post_meta ($ post-> ID, 'custom_text', true);
L'utilisation de ce code dans la boucle de publication unique placerait le texte "Du texte dans une entrée de texte de base" dans la variable $ custom_text
qui pourrait ensuite être répercuté ou filtré, ou tout ce que vous voudriez faire avec la chaîne. Lorsque vous ne traitez que dans quelques domaines, c'est probablement la voie à suivre, mais dans notre exemple, nous travaillons avec 11 domaines différents. Les appeler individuellement avec cette fonction alourdirait inutilement votre code car il existe un moyen d'obtenir toutes les données en même temps..
Ma méthode préférée quand je travaille avec autant de champs est d’utiliser le get_post_custom ()
une fonction. Avec cette fonction, nous pouvons stocker tous les champs de méta post personnalisés dans un tableau, puis récupérer les données souhaitées avec la clé de tableau..
$ post_meta_data = get_post_custom ($ post-> ID);
va nous donner un tableau qui ressemble à ceci:
Array ([custom_text] => Array ([0] => Du texte dans une entrée de texte de base) [custom_textarea] => Array ([0] => Un paragraphe ou deux d'une textarea. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tristique quam mi. Voir toutes les personnes qui ont survécu au combat. Mauris vel enim mauris, vitae mattis tortor. Praesent in adipiscing massa. Fusce quis eros vel pharetra conséquat imperdiet ut est. 0] => on) [custom_select] => Array ([0] => un) [custom_radio] => Array ([0] => deux) [custom_checkbox_group] => Array ([0] => a: 2: i: 0; s: 3: "un"; i: 1; s: 5: "trois";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ([0 ] => 25/05/2012) [custom_slider] => Array ([0] => 15) [custom_image] => Array ([0] => 413) [custom_repeatable] => Array ([0] => a : 3: i: 0; s: 22: "texte d'une répétable"; i: 1; s: 27: "plus de texte d'une répétable"; i: 2; s: 33: "les champs de texte répétables sont excellents! ";))
Comme vous pouvez le constater à partir de ce tableau, WordPress stocke chaque champ sous forme de tableau car il est possible d’avoir plusieurs valeurs pour le même champ. Vous remarquerez probablement aussi que quelques-uns des champs sont sérialisés. Explorons davantage la gestion des données de chaque champ et expliquons comment résoudre ce problème..
Les champs text et textarea sont assez simples à traiter. Vous pouvez les faire écho avec l'un des exemples suivants:
echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; if ($ custom_checkbox == 'on') do_stuff ();
La première ligne affichera simplement la chaîne telle quelle, et la seconde convertira les sauts de ligne en paragraphes avec WordPress ' le contenu
filtre. Vous pouvez utiliser ces mêmes méthodes pour les champs select, radio, date et slider..
La dernière ligne montre comment vous pouvez vérifier si une case à cocher a été cochée ou non. Si tel est le cas, vous pouvez exécuter diverses fonctions ou un certain nombre de fonctions..
Nos champs de groupe de cases à cocher et nos champs reproductibles stockent des tableaux qui sont sérialisés dans la base de données. Avant de pouvoir sortir ces données, nous devons les désérialiser.
$ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);
le désérialiser ()
function est une fonction PHP de base qui convertit nos données en un tableau plus facile à utiliser. Le code ci-dessus me donnera deux tableaux qui ressemblent à ceci:
Tableau ([0] => un [1] => trois) Tableau ([0] => texte d'une répétable [1] => plus de texte d'une répétable [2] => les champs de texte répétables sont excellents!)
Maintenant, je peux parcourir les tableaux, mais je veux les utiliser dans ma sortie. Il est important de noter que dans le champ reproductible, si vous le rendez également triable comme le fait notre exemple dans la partie 3 de notre didacticiel de modèle de boîte méta personnalisée, les clés du tableau seront automatiquement stockées dans l'ordre 0, 1, 2, 3. , etc. et non dans l'ordre dans lequel ils ont été entrés avant de les trier.
écho '
Cet exemple affichera une liste non ordonnée de chaque chaîne enregistrée dans le répertoire $ custom_repeatable
tableau.
Pour nos champs Post List et Image, nous avons enregistré un identifiant. Il peut y avoir de très rares cas dans lesquels vous souhaitez générer uniquement l'ID, mais vous souhaiterez probablement utiliser l'ID pour obtenir plus d'informations..
$ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, 'thumbnail');
Ce tutoriel montre les manières les plus élémentaires d'utiliser les données que nous avons stockées avec nos méta-boîtes personnalisées réutilisables. Pouvoir sauvegarder des données supplémentaires et les utiliser dans des thèmes et des plugins ouvre un tout nouveau monde de possibilités avec WordPress. Pour quoi l'utiliserez-vous??