Что делать с незакрепленными логотипами и заголовками, загруженными через собственный загрузчик wordpress?


Обычно, когда мы сортируем незакрепленные изображения, они также включают логотипы и изображения заголовков. Мой вопрос прост. Есть ли какой-либо способ защитить заголовок и логотипы от удаления?

Можно ли автоматически прикреплять их к странице (например, к логотипу или заголовку страницы) при загрузке, чтобы они не отображались незакрепленными в медиатеке.

Author: wp student, 2014-03-21

1 answers

Вы можете добавить идентификатор как post_parent во вложение изображения заголовка с помощью wp_update_post() ( даже несмотря на то, что это, кажется, очень и очень банальный способ сделать это!)

Сложность заключается в том, чтобы извлечь идентификатор из URL-адреса вложения; к счастью, Rarst решил эту проблему давным-давно, так что вы можете вручную добавить get_attachment_id() к вашим функциям.

Далее вам нужно будет назначить идентификатор как post_parent; каждый раз, когда вы будете сохранять изображение заголовка, выбранное изображение заголовка будет прикреплено к этому специальный идентификатор.

add_action( 'admin_init', 'attach_header_image' );
function attach_header_image() {
  if ( isset( $_POST['default-header'] ) ) :
    $header_image_url = get_header_image();
    $header_image_id = get_attachment_id( $header_image_url ); // function via https://wordpress.stackexchange.com/a/7094/32946
    $args = array(
      'ID' => $header_image_id,
      'post_parent' => 1 // assign header image to this ID
    );
    wp_update_post( $args );
  endif;
}

Тем не менее, это кажется сложным способом решения проблемы, и, вероятно, было бы лучше написать исключение для функции удаления...

Информация об отладке:

  • echo get_header_image() должно выводить ссылку на текущий URL-адрес изображения заголовка (верно только в том случае, если определено изображение заголовка)
  • echo get_attachment_id( $header_image_url ) должно выводить идентификатор страницы вложения, который должен быть равен идентификатору страницы вложения, которую вы можете видеть на носителе (/wp-admin/post.php ?сообщение=123&действие=редактировать); также не забудьте скопировать и вставить get_attachment_id() функционируйте от Rarst до ваших функций!
  • оператор if, содержащий default-header, должен проверять наличие name поля заголовка проверяемого ввода, которое будет сохранено через $_POST enter image description here
 2
Author: Sven, 2017-04-13 12:37:52