rickcurran
  • 0
Учитель

Как добавить «Использовать как избранное изображение» в настраиваемый метабокс?

  • 0

Я реализую собственное мета-поле, которое позволяет пользователю добавлять изображения через простое поле ввода файла (на основе кода на этом сайте: Meta Box Script ). Этот код позволяет добавлять несколько изображений в качестве вложений на страницу и делает это без полного диалогового окна загрузки, вы просто выбираете файл изображения и публикуете страницу, и изображение загружается. Это прекрасно работает, однако я хотел бы иметь возможность добавлять ссылку на каждое изображение, чтобы вы могли установить изображение в качестве избранного изображения.

Вот изображение, показывающее, как это выглядит:Миниатюры изображений со ссылками

Я просмотрел стандартный загрузчик изображений и увидел, что есть файл JS (/wp-admin/js/set-post-thumbnail.js), который запускается как вызов AJAX, и это устанавливает изображение в качестве избранного изображения. Я использую следующий код (отраженный PHP, следовательно, экранирование), чтобы добавить ссылку «Использовать как избранное изображение»:

<script type="text/javascript" src="/wp-admin/js/set-post-thumbnail.js"></script>
<a class="wp-post-thumbnail" id="wp-post-thumbnail-1915" href="javascript:void(0)" onclick="WPSetAsThumbnail(&quot;{$att->ID}&quot;, &quot;{$nonce}&quot;);return false;">Use as featured image</a>

Я понял это с помощью проб и ошибок, но это не работает, поскольку я получаю сообщение об ошибке Uncaught ReferenceError: setPostThumbnailL10n is not defined, потому что у меня нет загруженного JS, который обеспечивает setPostThumbnailL10n и, возможно, другие проблемы!

В основном я пытаюсь выяснить, возможно ли легко использовать эту встроенную функциональность. Мой другой вариант — свернуть свой собственный JS, который вместо этого сохраняет изображение как рекомендуемое. Я также потребую, чтобы у меня была возможность удалить изображения как рекомендуемые. Приветствуются любые идеи, так как это кажется неизведанной территорией, так как поиск в Google ничего не дал!

Share
  1. даже если вы включили все необходимые файлы, вам все равно придется создать дополнительные скрытые поля, такие как _nonce, чтобы передать

    check_ajax_referer( "set_post_thumbnail-$post_ID" );

    также вам нужно будет создать скрытое поле действия, чтобы определить случай вызова Ajax со значением:"set-post-thumbnail"

    Вам лучше создать свой собственный вызов Ajax и просто использовать в своей функции обратного вызова:

        set_post_thumbnail( $post, $thumbnail_id );
    //or
        update_post_meta( $post->ID, '_thumbnail_id', $attachment_id );
    

    и отменить использование

    delete_post_meta( $post_ID, '_thumbnail_id' );
    
    • 0
    • Спасибо, использование update_post_meta отлично сработало через вызов AJAX 🙂 Я смог подключиться к методам AJAX, уже работающим в сценарии метабокса, который я использовал, и мне удалось заставить его работать довольно легко.

      • 0

Оставить ответ

You must login to add an answer.