Alt теги к изображениям через $wpdb
Хотел добавить alt теги к изображениям у которых нет alt тега через $wpdb есть пример:
get_results("select id, post_content from $wpdb->posts ");
print_r($posts);
$posts[0]->post_content = 'test2';
foreach ($posts as $post){
print $post->post_content;
$wpdb->update('wp_posts', ['post_content' => $post->post_content], ['id' => $post->id]);
}
?>
но не могу написать логику, и не могу понять, как можно выбрать все статьи с изображениями без alt тегов.
if ( is_single() ) { $id = get_post_thumbnail_id(); $alt = esc_html(get_post_meta( $id, '_wp_attachment_image_alt', true )); }Этот код куда прописать ?
Извините, я в PHP вообще не шарю
Этот код, чтобы вам найти где храняться alt'ы у постов wp. Можно использовать на странице отдельного поста.
Мне хотелось добавить alt теги тем изображениям у которых его нет, не знаете код который делает это ?
У вас изображения прикреплены к постам или просто в теле поста расположены?
Извините, я вас не понял, скорее всего в теле поста. Пример:
https://glazok.kz/stati/oblachnoe-nablyudenie-doma-nyuansy-i-osobennosti-ispolzovaniya/
function fix_alts($content) { $content = str_replace( 'alt=""', 'alt="Мой альтернативный альт"', $content); return $content; } add_filter( 'the_content', 'fix_alts',99);Попробуйте добавить этот код в functions.php вашей темы.
Да, у меня есть примерный код вот:
function add_alt_tags($content) { global $post; preg_match_all('/<img (.*?)\/>/', $content, $images); if(!is_null($images)) { foreach($images[1] as $index => $value) { if(!preg_match('/alt=/', $value)) { $new_img = str_replace('<img', '<img alt="'.$post->post_title.'"', $images[0][$index]); $content = str_replace($images[0][$index], $new_img, $content); } } } return $content; } add_filter('the_content', 'add_alt_tags', 99999);Но мне нужно сделать так чтобы добавились только тем изображениям у которых нет алт тега , и чтобы она была статической а не динамической. То есть чтобы она сразу легла на базу данных через $wpdb.