私はたくさんの研究をしてきました、そして私はまだこれを解決していません。 Attachment Display Settings
(投稿エディタのInsert Media
ダイアログの一部)にカスタムオプションを追加できますか?
私が求めているのは、投稿内のすべての画像の周りにクラスを持つアンカーを追加する機能です。
これにより、添付ファイル編集画面にクラスをimgタグに適用するためのフィールドが追加されます。
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);
これをテーマのfunctions.php
ファイルに追加するだけです。
/**
* 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);