Изменить порядок ссылок на СМИ?


Я пытаюсь изменить порядок ссылок в окне мультимедиа при выборе изображения. Я хочу переместить "Использовать в качестве рекомендуемого изображения" над кнопкой "Вставить в сообщение".

Я также хочу переименовать текст "Использовать в качестве отличительного изображения"? Я сделал это, отредактировав media.php файл в wp-admin/incudes/media.php но я не хочу редактировать это каждый раз при обновлении.

Можно ли изменить порядок элементов без необходимости переписывать всю функцию целиком?

Спасибо в продвижение.

ИЗМЕНИТЬ:

В основном я хочу переместить текст над кнопкой и, возможно, добавить метку слева, как и другие выше. Я также хочу переименовать текст "использовать в качестве рекомендуемого изображения".

enter image description here

РЕДАКТИРОВАТЬ

Спасибо 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, но безуспешно.

Author: Elliott, 2011-09-02

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.

 6
Author: Dave Romsey, 2012-06-18 20:53:29