В шаблоне имеется следующий код, выводящий 6 последних новостей:
<div class="index-container2 mob-none">
<?
$pages = get_posts(array(
'numberposts' => 6,
'category_name' => 'glavnaya',
'order' => 'DESC',
'post_type' => 'post',
));
?>
<?
$isPush = false;
foreach ($pages as $post) {
setup_postdata($post);
?>
<?
$dd = get_the_date('d.m');
$image = get_field('изображение');
$size = get_field('размер_блока_в_новостях');
$bottom_img = '' . get_template_directory_uri() . '/images/proc-grey.png';
//$bg_color = '#bba68f';
$border_grey = '';
if ($size == 'Большая ширина') $size = 'news-body_big';
else $size = 'news-body_standart';
//Определяем цвет фона
$temp_color = get_field('шаблон_цвета');
$bg_color = get_field('цвет_фона');
if (!$bg_color) {
if ($temp_color == "Серый") $bg_color = "#f1f0f0";
else if ($temp_color == "Белый") $bg_color = "#ffffff";
else if ($temp_color == "Коричневый") $bg_color = "#bba68f";
else $bg_color = "#ffffff";
}
//определяем изображение
$image_big = get_field('изображение_новости');
$icon = get_field('иконка');
$temp_img = get_field('шаблон_для_изображения');
if ($image_big) {
$bottom_img = '';
} else if ($icon) {
$bottom_img = $icon['url'];
} else if ($temp_img) {
if ($temp_img == "Процент") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-white.png';
} else if ($temp_img == "Подарок") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/present-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/present-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/present-white.png';
} else if ($temp_img == "Подарок") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-white.png';
}
}
//делаем рамку, если фон белый и нет картинки
if ($bg_color == '#ffffff' && $bottom_img !== '') {
$border_grey = ';border: 1.5px solid #f1f0f0;';
}
?>
<a href="<?php the_permalink(); ?>" class="news-body <?php echo $size ?>"
style="background-color: <?php echo $bg_color;
echo $border_grey; ?>;">
<? /*<div class="name"><?php the_field('заголовок'); ?></div>
<div class="desc"><?php the_field('описание'); ?></div>
<div class="img"><?php if ($bottom_img != '') { ?><img src="<?php echo $bottom_img ?>" alt=""><?php } ?></div>*/ ?>
<div class="img2"><?php if ($image_big) { ?><img src="<?php echo $image_big['url']; ?>"
alt=""><?php } ?></div>
</a>
<?
$isPush = !$isPush;
} ?>
<? wp_reset_query();
?>
<div class="button-block">
<button class="load-news" type="button" data-page="1">Ещё новости</button>
</div>
Пытаюсь теперь сделать подгрузку следующих 6 новостей через AJAX, для этого зарегистрировал функцию-обработчик и в ней продублировал вышеописанный код:
function load_more_news()
{
$args = $_POST;
$args['page']++;
$args['numberposts'] = 6;
$args['order'] = 'DESC';
$args['post_type'] = 'post';
$pages = get_posts($args);
$isPush = false;
foreach ($pages as $post) {
setup_postdata($post);
$dd = get_the_date('d.m');
$image = get_field('изображение');
var_dump($post);
$size = get_field('размер_блока_в_новостях');
$bottom_img = '' . get_template_directory_uri() . '/images/proc-grey.png';
//$bg_color = '#bba68f';
$border_grey = '';
if ($size == 'Большая ширина') $size = 'news-body_big';
else $size = 'news-body_standart';
//Определяем цвет фона
$temp_color = get_field('шаблон_цвета');
$bg_color = get_field('цвет_фона');
if (!$bg_color) {
if ($temp_color == "Серый") $bg_color = "#f1f0f0";
else if ($temp_color == "Белый") $bg_color = "#ffffff";
else if ($temp_color == "Коричневый") $bg_color = "#bba68f";
else $bg_color = "#ffffff";
}
//определяем изображение
$image_big = get_field('изображение_новости');
$icon = get_field('иконка');
$temp_img = get_field('шаблон_для_изображения');
if ($image_big) {
$bottom_img = '';
} else if ($icon) {
$bottom_img = $icon['url'];
} else if ($temp_img) {
if ($temp_img == "Процент") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/proc-white.png';
} else if ($temp_img == "Подарок") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/present-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/present-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/present-white.png';
} else if ($temp_img == "Подарок") {
if ($temp_color == "Серый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-braun.png';
else if ($temp_color == "Белый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-grey.png';
else if ($temp_color == "Коричневый") $bottom_img = '' . get_template_directory_uri() . '/images/pack-white.png';
}
}
//делаем рамку, если фон белый и нет картинки
if ($bg_color == '#ffffff' && $bottom_img !== '') {
$border_grey = ';border: 1.5px solid #f1f0f0;';
}
?>
<a href="<?php the_permalink(); ?>" class="news-body <?php echo $size ?>"
style="background-color: <?php echo $bg_color;
echo $border_grey; ?>;">
<? /*<div class="name"><?php the_field('заголовок'); ?></div>
<div class="desc"><?php the_field('описание'); ?></div>
<div class="img"><?php if ($bottom_img != '') { ?><img src="<?php echo $bottom_img ?>" alt=""><?php } ?></div>*/ ?>
<div class="img2"><?php if ($image_big) { ?><img src="<?php echo $image_big['url']; ?>"
alt=""><?php } ?></div>
</a>
<?
$isPush = !$isPush;
}
wp_reset_query();
wp_die();
}
Но при нажатии кнопки подгрузки на экран выводятся только 6 обёрток, ни картинок, ни текста в них не появляется.
Попытки поиска готового решения ничего не дали - везде требуют оборачивания get_field()
в цикл, что у меня уже сделано.
Судя по всему, в functions.php
нужно что-то подключить для работы ACF. Но что?
Помогло явное указание ID поста:
$image_big = get_field('изображение_новости', $post->ID);
Почему он не определился сам, правда, остаётся непонятным.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
друзья! У меня реализовано пару парсеров, который проходят капчу и тянут информацию, что занимает очень много времениОсобенно, если на сайте...
Работаю с библиотекой PHPExcel в Wordpress нужно прочесть данные из excel файла, взял отсюда - https://packagistorg/packages/phpoffice/phpexcel Получаю ошибку
делал новый сайт, и переносил обработчик для формы с старого, на старом все работает, когда перенёс на новом перестали доходить письма на почту,...