如何更改 WordPress 帖子中的图像属性

问题描述 投票:0回答:2

Wordpress 帖子显示以下图像结果。

<img class="large alignnone size-full wp-image-8" src="http://localhost/blog/wp-content/uploads/2017/04/t-radio-city-music-hall.jpg" alt="" width="960" height="654" srcset="http://localhost/blog/wp-content/uploads/2017/04/t-radio-city-music-hall.jpg 960w, http://localhost/blog/wp-content/uploads/2017/04/t-radio-city-music-hall-300x204.jpg 300w, http://localhost/blog/wp-content/uploads/2017/04/t-radio-city-music-hall-768x523.jpg 768w" sizes="(max-width: 960px) 100vw, 960px">

如何更改这些输出如下?

  • 删除srcset
  • 将 src 替换为 data-original

最终结果应具有属性:数据原始、类、宽度、高度。

需要 WordPress 查询。

请不要使用 jQuery。

php wordpress image src wordpress-hook
2个回答
1
投票

WordPress 有一个内置的钩子来修改或更改图像 HTML

wp_get_attachment_image_attributes

这是代码:

function wh_alter_attachment_image($attr)
{
    if (isset($attr['srcset']))
        unset($attr['srcset']);
    if (isset($attr['src']))
    {
        $attr['data-original'] = $attr['src'];
        unset($attr['src']);
    }
    return $attr;
}

add_filter('wp_get_attachment_image_attributes', 'wh_alter_attachment_image');

代码位于活动子主题(或主题)的

functions.php
文件中。或者也可以在任何插件 php 文件中。
代码经过测试并且可以运行。

希望这有帮助!


0
投票

// Função para adicionar atributos de imagem automaticamente a partir do nome do arquivo de imagem
function abl_mc_auto_image_attributes($post_ID) {
  // Verifica se o post é um attachment
  if (get_post_type($post_ID) !== 'attachment') {
      return;
  }

  // Pega o post do attachment
  $attachment = get_post($post_ID);
  
  // Pega o título do attachment e faz alterações necessárias
  $attachment_title = $attachment->post_title;
  $attachment_title = str_replace('-', ' ', $attachment_title); // Remoção de hífen
  $attachment_title = ucfirst($attachment_title); // Capitaliza a primeira letra da primeira palavra

  // Cria o array com os novos dados do attachment
  $uploaded_image = array(
      'ID' => $post_ID,
      'post_title' => $attachment_title, // Título da imagem
      //'post_excerpt' => $attachment_title, // Legenda da imagem
      //'post_content' => $attachment_title // Descrição da imagem
  );

  // Remove o action para evitar loop infinito
  remove_action('add_attachment', 'abl_mc_auto_image_attributes');

  // Atualiza o post do attachment
  wp_update_post($uploaded_image);

  // Atualiza o texto alternativo da imagem
  update_post_meta($post_ID, '_wp_attachment_image_alt', $attachment_title);

  // Adiciona o action novamente
  add_action('add_attachment', 'abl_mc_auto_image_attributes');
}
add_action('add_attachment', 'abl_mc_auto_image_attributes');

© www.soinside.com 2019 - 2024. All rights reserved.