Изменить порядок ссылок на СМИ?
Я пытаюсь изменить порядок ссылок в окне мультимедиа при выборе изображения. Я хочу переместить "Использовать в качестве рекомендуемого изображения" над кнопкой "Вставить в сообщение".
Я также хочу переименовать текст "Использовать в качестве отличительного изображения"? Я сделал это, отредактировав media.php файл в wp-admin/incudes/media.php но я не хочу редактировать это каждый раз при обновлении.
Можно ли изменить порядок элементов без необходимости переписывать всю функцию целиком?
Спасибо в продвижение.
ИЗМЕНИТЬ:
В основном я хочу переместить текст над кнопкой и, возможно, добавить метку слева, как и другие выше. Я также хочу переименовать текст "использовать в качестве рекомендуемого изображения".
РЕДАКТИРОВАТЬ
Спасибо goto10 за помощь в этом, приведенный ниже код "работает", поскольку он изменяет текст и расположение отображаемого изображения. Хотя, поскольку я не могу получить идентификатор вложения, он не сохранит image...it работает путем ручного ввода во вложении Идентификатор.
function custom_attachment_fields_to_edit($form_fields, $post) {
$form_fields['buttons'] = array(
'label' => 'Banner Image',
'value' => '',
'input' => 'html'
);
$thumbnail = '';
$calling_post_id = 0;
if (isset($_GET['post_id']))
$calling_post_id = absint($_GET['post_id']);
elseif (isset($_POST) && count($_POST))
$calling_post_id = $post->post_parent;
$attachment_id = ???
$ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
$form_fields['buttons']['html'] = $thumbnail = "<a class='' id='wp-post-thumbnail-" . $attachment_id . "' href='#' onclick='WPSetAsThumbnail(\"$attachment_id\", \"$ajax_nonce\");return false;'>Set as Banner Image</a>";
return $form_fields;
}
add_filter('attachment_fields_to_edit', 'custom_attachment_fields_to_edit', 11, 2);
Попробовал это, чтобы получить идентификатор вложения:
$args = array('post_type' => 'attachment', 'post_parent' => $_GET['post_id'] );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) {
$attachment_id = $attachment->ID;
}
}
$attachment_id = get_post_meta($_GET['post_id'], '_wp_attachment_image_id', true);
$attachment_id = get_post_meta($_GET['post_id'], '_wp_attachment_url', true );
Также попытался заменить $_GET['post_id']
на $calling_post_id
Есть какие-либо предложения о том, как получить идентификатор вложения? Я попытался скопировать большую часть кода из media.php
, но безуспешно.
1 answers
Изменить: Добавлен пример вывода идентификатора вложения. Присвоил его переменной $attachment_id, поскольку именно так на нее ссылается основной код. Обратите внимание, что объект $post
(для вложения) передается в обратный вызов attachment_fields_to_edit filter
, поэтому у вас будет доступ ко всем свойствам вложения.
Да, это можно сделать без изменения ядра. attachment_fields_to_edit
- это фильтр, который вам здесь нужен.
Добавьте это в свой functions.php или плагин:
add_filter( 'attachment_fields_to_edit', 'customize_attachment_fields_to_edit', 11, 2 ); // Note priority 11 to ensure that the customizations are not overridden
function customize_attachment_fields_to_edit( $form_fields, $post ) {
$form_fields['buttons'] = array(
'label' => '',
'value' => '',
'input' => 'html'
);
$attachment_id = $post->ID;
$form_fields['buttons']['html'] = "<h1>Custom stuff here... Attachment ID: $attachment_id</h1>";
return $form_fields;
}
Примечания:
фильтр attachment_fields_to_edit
применяется на line 1147 in \wp-admin\includes\media.php
Большая часть кода, который настраивает вывод для кнопок, находится на lines 1311-1342 in \wp-admin\includes\media.php
, хотя выше line 1311
есть некоторые переменные, которые используются для определения способа вывода, которые не передаются в attachment_fields_to_edit filter
.
По сути, вы захотите скопировать основной код и добавить его в свой обратный вызов customize_attachment_fields_to_edit
. Затем отформатируйте скопированный код в соответствии с вашими потребностями, но имейте в виду, что вам может потребоваться создать некоторые из vars самостоятельно ($send
, для пример, если вы действительно хотите как можно ближе дублировать основной код).
Вот ссылка на хорошо написанный учебник Энди Блэквелла по настройке галерей WP.