Sont des sous-titres stockés nulle part?
-
16-10-2019 - |
Question
En ce qui concerne mon précédent question sur les sous-titres de shortcode , il ne me semble pas que le texte même d'un sous-titre est stockée nulle part ailleurs que dans le contenu du message lui-même dans le shortcode.
J'aurais pensé que wp_get_attachment_metadata
stockerait les informations pour une pièce jointe, mais il ne fonctionne pas.
Ai-je tort? Ou ne pas stocker WordPress la légende réelle nulle part?
La solution
Oui, il stocke la légende dans son propre place dans le DB. Je ne peux pas citer l'emplacement exact mais dans Wordpress, « Pièces jointes » sont un type de poste et il stocke chaque pièce jointe comme un poste. Pour un type de poste d'attache, il traite la Légende de l'image comme the_excerpt
la description de l'image comme the_content
et le titre d'image comme ... the_title
.
Autres conseils
où $post_id
est la sortie afficherons actuelle, ce code toutes les pièces jointes d'un poste, et leurs titres descriptions et légendes
$q = new WP_Query( array(
'post_parent' => $post_id,
'post_type' => 'attachment'
));
if($q->have_posts()){
while($q->have_posts()){
$q->the_post();
?>
<h3><?php the_title(); ?></h3>
<?php
if ( wp_attachment_is_image( $post->id ) ) {
$att_image = wp_get_attachment_image_src( $post->id, "large");
?>
<img src="<?php echo $att_image[0];?>" width="<?php echo $att_image[1];?>" height="<?php echo $att_image[2];?>" class="attachment-large" alt="<?php $post->post_excerpt; ?>" />
<?php
}
// caption
the_excerpt();
// description
the_content();
}
}
wp_reset_query();
Les pièces jointes sont tous les enfants du poste, ils sont attachés, et vous pouvez l'utiliser pour faire votre propre code de la galerie personnalisée. Ils ont aussi beaucoup de données dans leurs champs personnalisés, tels que les dimensions de l'image, les données EXIF, etc. Ils peuvent même être commenté.
Vous pouvez prendre le code de la boucle interne et le placer dans attachment.php dans votre thème, il suffit de double vérifier que je ne l'ai pas fait de fautes de frappe de syntaxe avant de le faire.