WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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 тегов.

0
K0beni
1.4 года назад
  • 1
    mi1384 solosofii.com
    if ( is_single() ) {
    	$id = get_post_thumbnail_id();
    	$alt = esc_html(get_post_meta( $id, '_wp_attachment_image_alt', true ));
    }
    K0beni 1.4 года назад

    Этот код куда прописать ?
    Извините, я в PHP вообще не шарю

    mi13 1.4 года назад

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

    K0beni 1.4 года назад

    Мне хотелось добавить alt теги тем изображениям у которых его нет, не знаете код который делает это ?

    mi13 1.4 года назад

    У вас изображения прикреплены к постам или просто в теле поста расположены?

    K0beni 1.3 года назад

    Извините, я вас не понял, скорее всего в теле поста. Пример:
    https://glazok.kz/stati/oblachnoe-nablyudenie-doma-nyuansy-i-osobennosti-ispolzovaniya/

    mi13 1.3 года назад
    function fix_alts($content) {
    		$content = str_replace( 'alt=""', 'alt="Мой альтернативный альт"', $content);
    	return $content;    
    }
    add_filter( 'the_content', 'fix_alts',99);

    Попробуйте добавить этот код в functions.php вашей темы.

    K0beni 1.3 года назад

    Да, у меня есть примерный код вот:

    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.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация