it-swarm.com.de

So passen Sie das Standard-HTML für Wordpress-Anhänge an

Ich verwende Wordpress 3.0.1 (aktuellste Version) und arbeite mit dem Whiteboard-Thema.

Es scheint, dass Wordpress für Anhänge (speziell Bilder) den HTML-Code automatisch generiert und ungefähr so ​​aussieht:

<div id="attachment_12" class="wp-caption alignleft" style="width: 310px">
<a rel="shadowbox" href="http://new.michaellane.com/blog/wp-content/uploads/2010/11/areamapchange.png">
<img class="size-medium wp-image-12 " title="Area Map Improvments" src="http://new.michaellane.com/blog/wp-content/uploads/2010/11/areamapchange-300x179.png" alt="Area Map Improvments" width="300" height="179" />
</a>
<p class="wp-caption-text">Area Map Improvments</p>
</div>

Ich verstehe, dass einige dieser Attribute im Bearbeitungsbildschirm selbst geändert werden können. Ich möchte jedoch die Standard-HTML-Codestruktur ändern, damit ich zusätzliche Tags, CSS-Klassen usw. einfügen kann.

Ich brauche eine Methode, um dies zu erreichen, ohne Dateien außerhalb des Ordners "wp-content" zu bearbeiten - mit anderen Worten, es muss eine vorlagenbasierte Möglichkeit geben, dies zu tun. Irgendwelche Ideen?

5
jeffkee

Ich möchte die Standard-HTML-Codestruktur ändern, damit ich zusätzliche Tags einfügen kann

Führe einen Filter für img_caption_shortcode aus. Diesen Hook findest du hier in der Quelle. http://core.trac.wordpress.org/browser/tags/3.0.1/wp-includes/media.php#L720

Beispiel

add_filter( 'img_caption_shortcode', 'my_caption_html', 10, 3 );
function my_caption_html( $current_html, $attr, $content ) {
    extract(shortcode_atts(array(
        'id'    => '',
        'align' => 'alignnone',
        'width' => '',
        'caption' => ''
    ), $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">' . $caption . '</p></div>';
}

Ich habe im Grunde genommen den größten Teil des Codes von der ursprünglichen Funktion entlehnt, um ihn im Filter zu verwenden, aber es sollte Ihnen etwas geben, auf das Sie aufbauen können ...

Hoffentlich hilft das.. :)

10
t31os

Siehe auch Wie kann ich dem Fenster für Anhänge ein URL-Feld hinzufügen? wo ich ein kleines Demo-Plugin gepostet habe.

2
fuxia