2009-11-28 8 views
0

Alors, comment aligner une légende d'image sous une étiquette d'image sur son bord droit?Wordpress: Comment ajouter une légende alignée à droite sur le bord de l'image

Essayé en utilisant div mais évidemment ce n'est pas autorisé dans wp.

De quelles autres balises css/tags ai-je besoin?

+0

Essayez-vous d'aligner à droite TOUTES les légendes d'images sur votre site, ou juste une légende particulière? –

+0

toutes les légendes d'image feraient je suppose - je suppose que vous avez un plugin à l'esprit? – rutherford

Répondre

0

Asked sur le forum Wordpress site communautaire aussi, aucune réponse donc probablement ce n'est pas une caractéristique de 2.2.1

1

Est-ce que cela ne fonctionne pas?

.wp-légende p.wp-caption-text {text-align: right; }

+0

désolé, je n'ai pas regardé les fichiers css wordpress - donc j'ai eu cela dans le fichier css et wp ajouter ces classes automatiquement ou les ajouter sur une durée dis moi-même? – rutherford

+0

WP ajoutera ces classes automatiquement lorsque vous créez la légende. Vous pouvez vérifier la feuille de style de votre thème pour voir s'il contient déjà une règle pour la classe wp.caption-text. Si oui, vous pouvez le modifier. Ou vous pouvez simplement coller la règle dans le bas de votre feuille de style. –

+0

essayé cela et il n'a aucun effet – rutherford

1

je suis venu avec un moyen de spécifier l'alignement sur une base par la légende.

Fondamentalement, j'ai copié le shortcode légende de media.php et l'ai fait dans ma propre fonction personnalisée qui accepte un argument "captionalign". Pour l'utiliser, collez le code ci-dessous dans le fichier "function.php" de votre thème - ceci vous permettra de spécifier une option dans votre tag de légende nommé capationalign. En définissant ce paramètre sur droite, gauche ou centre, vous pouvez spécifier un alignement de texte par légende. Si vous omettez l'attribut, la légende sera définie par défaut sur l'alignement par défaut.

Un exemple utilisé:

[caption align="aligncenter" width="300" caption="My caption" captionalign="right"] 
<a href="http://www.myawesomeblog.com/wp-content/uploads/2010/05/image.jpg"> 
<img title="My image" src="http://www.myawesomeblog.com/wp-content/uploads/2010/05/image.jpg-300x216.jpg" alt="My image" width="300" height="216" /> 
</a> 
[/caption] 

Et voici la fonction:

add_shortcode('wp_caption', 'custom_img_caption_shortcode'); 
add_shortcode('caption', 'custom_img_caption_shortcode'); 

/** 
* The Caption shortcode. 
* 
* Allows a plugin to replace the content that would otherwise be returned. The 
* filter is 'img_caption_shortcode' and passes an empty string, the attr 
* parameter and the content parameter values. 
* 
* The supported attributes for the shortcode are 'id', 'align', 'width', and 
* 'caption'. 
* 
* @since 2.6.0 
* 
* @param array $attr Attributes attributed to the shortcode. 
* @param string $content Optional. Shortcode content. 
* @return string 
*/ 
function custom_img_caption_shortcode($attr, $content = null) { 

// Allow plugins/themes to override the default caption template. 
$output = apply_filters('img_caption_shortcode', '', $attr, $content); 
if ($output != '') 
    return $output; 

extract(shortcode_atts(array(
    'id' => '', 
    'align' => 'alignnone', 
    'width' => '', 
    'caption' => '', 
    'captionalign' => '' 
), $attr)); 

if (1 > (int) $width || empty($caption)) 
    return $content; 

if ($id) $id = 'id="' . esc_attr($id) . '" '; 

return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) . '" style="width: ' . (10 + (int) $width) . 'px">' 
. do_shortcode($content) . '<p class="wp-caption-text" style="text-align:' . $captionalign . '">' . $caption . '</p></div>'; 
} 

espoir qui aide quelqu'un!