etxt banner 468x60etxt banner 728x90etxt banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180jivo banner 468x60jivo banner 728x90jivo banner 930x180

Как получить случайное изображение на php, WordPress

Чтобы получить случайное изображение с сервера WordPress, можно использовать несколько подходов, в зависимости от того, где и как вы хотите отображать это изображение. Вот несколько способов:

1. Использование PHP и WP_Query

С помощью функции WP_Query можно получить случайное изображение из медиа-библиотеки WordPress:

$args = array(
    'post_type'      => 'attachment',
    'post_mime_type' => 'image',
    'post_status'    => 'inherit',
    'orderby'        => 'rand',
    'posts_per_page' => 1,
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        $image_url = wp_get_attachment_url(get_the_ID());
        echo '<img src="' . esc_url($image_url) . '" alt="' . esc_attr(get_the_title()) . '">';
    }
}

wp_reset_postdata();

Этот код выбирает одно случайное изображение и выводит его на экран.

2. Использование JavaScript и REST API

Вы можете создать API-запрос для получения случайного изображения и затем вывести его с помощью JavaScript:

fetch('/wp-json/wp/v2/media?per_page=1&orderby=rand')
    .then(response => response.json())
    .then(data => {
        if (data.length > 0) {
            const imageUrl = data[0].source_url;
            const imageElement = document.createElement('img');
            imageElement.src = imageUrl;
            document.body.appendChild(imageElement);
        }
    })
    .catch(error => console.error('Error fetching image:', error));

Этот код выполняет запрос к REST API WordPress, выбирает случайное изображение и добавляет его на страницу.

3. Короткий код для вставки в пост или страницу

Создайте короткий код (shortcode) для вставки случайного изображения в пост или страницу:

function random_image_shortcode() {
    $args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'post_status'    => 'inherit',
        'orderby'        => 'rand',
        'posts_per_page' => 1,
    );

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $image_url = wp_get_attachment_url(get_the_ID());
            return '<img src="' . esc_url($image_url) . '" alt="' . esc_attr(get_the_title()) . '">';
        }
    }

    wp_reset_postdata();
}
add_shortcode('random_image', 'random_image_shortcode');

Теперь вы можете вставить [random_image] в любой пост или страницу, и WordPress выведет случайное изображение.

4. Использование плагинов

Если вы предпочитаете не писать код, есть плагины, которые могут автоматически выводить случайные изображения. Например:

  • Random Image Widget
  • Advanced Random Posts Widget

Выберите подходящий способ в зависимости от ваших требований и уровня доступа к коду WordPress.

beget banner 480x320beget banner 728x90beget banner 120x600flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600jivo banner 480x320jivo banner 728x90jivo banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как на pre_get_posts сделать сортировку по мета полю, значение которого является числом от большего к меньшему

Чтобы сделать сортировку по мета-полю (мета-записи) в WordPress с использованием хука pre_get_posts, можно добавить кастомный код в файл функций темы (например, functions.php). При этом нужно указать, что сортировка должна быть по значению мета-поля, которое является числом (например, от большего к меньшему). Пример кода: Объяснение: Если вы используете какой-то другой тип постов или условия для запроса…
Подробнее

Как на хуке pre_get_posts проверить post_type текущего запроса

Чтобы проверить тип записи (post_type) в запросе на хуке pre_get_posts, вы можете использовать объект запроса $query. Вот пример кода, который показывает, как это сделать: Пояснение: Таким образом, вы сможете проверить и управлять параметрами запроса в зависимости от типа записи.
Подробнее

Как в запросе wp_query исключить посты имеющие родительский пост, WordPress

Чтобы исключить посты, у которых есть родительский пост (т.е. дочерние посты), в запросе WP_Query, нужно использовать аргумент post_parent. Этот аргумент контролирует, есть ли у поста родитель или нет. Для исключения дочерних постов нужно указать условие post_parent => 0, что означает, что только посты без родителя (т.е. верхнего уровня) будут включены в выборку. Вот пример запроса:…
Подробнее