it-swarm.com.de

Hinzufügen einer benutzerdefinierten Anzeigeeinstellung für Anhänge für Bilder

Ich habe viel recherchiert und muss das erst noch herausfinden. Können Sie im Attachment Display Settings (Teil des Insert Media-Dialogs im Post-Editor) eine benutzerdefinierte Option hinzufügen?

Was ich will, ist die Fähigkeit, einen Anker mit einer Klasse um alle Bilder in Beiträgen hinzuzufügen.

11
Doidgey

Dadurch wird im Bearbeitungsbildschirm für Anhänge ein Feld zum Anwenden einer Klasse auf das img-Tag hinzugefügt.

function IMGattachment_fields($form_fields, $post) {
    $form_fields["imageClass"]["label"] = __("Image Class");
    $form_fields["imageClass"]["value"] = get_post_meta($post->ID, "_imageClass", true);
    return $form_fields;
}
add_filter("attachment_fields_to_edit", "IMGattachment_fields", null, 2);
function my_image_attachment_fields_save($post, $attachment) {
    if ( isset($attachment['imageClass']) )
    update_post_meta($post['ID'], '_imageClass', $attachment['imageClass']);
    return $post;
}
add_filter("attachment_fields_to_save", "my_image_attachment_fields_save", null, 2);
1
rspny

Sie müssen dies nur zur functions.php-Datei Ihres Themas hinzufügen:

/**
* Attach a class to linked images' parent anchors
* e.g. a img => a.img img
*/
function give_linked_images_class($html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
    $classes = 'img'; // separated by spaces, e.g. 'img image-link'

    // check if there are already classes assigned to the anchor
    if ( preg_match('/<a.*? class=".*?">/', $html) ) {
    $html = preg_replace('/(<a.*? class=".*?)(".*?>)/', '$1 ' . $classes . '$2', $html);
    } else {
     $html = preg_replace('/(<a.*?)>/', '$1 class="' . $classes . '" >', $html);
    }
    return $html;
}

add_filter('image_send_to_editor','give_linked_images_class',10,8);
0
jim.duck