O que fazer com logotipos não vinculados e cabeçalho carregado via upload nativo do wordpress?

4

Normalmente, quando classificamos imagens não conectadas, elas também incluem logotipos e imagens de cabeçalho. Minha pergunta é simples. Existe algum método para impedir que cabeçalhos e logotipos sejam excluídos?

É possível anexá-los a uma página (por exemplo, logotipo ou página de cabeçalho) automaticamente quando carregados, para que eles não apareçam desatacados na biblioteca de mídia.

    
por wp student 21.03.2014 / 21:03

1 resposta

2

Você pode adicionar um ID como post_parent ao anexo da imagem do cabeçalho por meio de wp_update_post() (embora isso parece ser uma maneira muito hacky de fazer isso!)

A parte complicada é tirar o ID do URL do anexo; Felizmente, Rarst resolveu esse problema há muito tempo, então você pode adicionar manualmente get_attachment_id() às suas funções.

Em seguida, você terá que atribuir um ID como post_parent ; toda vez que você salvar a imagem do cabeçalho, a imagem do cabeçalho selecionada será anexada a essa ID especial.

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;
}

No entanto, isso parece ser uma maneira complicada de resolver o problema e provavelmente seria melhor escrever uma exceção para a função delete ...

Infos de depuração:

  • echo get_header_image() deve gerar o link para o URL da imagem de cabeçalho atual (somente true se uma imagem de cabeçalho for definida)
  • echo get_attachment_id( $header_image_url ) deve exibir o ID da página de anexo que deve ser igual ao ID da página de anexo que você pode ver em Mídia (/wp-admin/post.php?post=123 & action = edit); também certifique-se de copiar e colar get_attachment_id() da Rarst às suas funções!
  • a instrução if contendo default-header deve verificar o name do campo de cabeçalho de entrada verificado, que será salvo via $_POST
por Sven 22.03.2014 / 06:30