У меня есть 2 версии сайта, живая тестовая версия и локальная версия.
В настоящее время я работаю над локальной версией, используя MAMP. Бэкэнд обоих сайтов идентичен, я уверен, что администратор каждого сайта точно такой же.
Я пытаюсь добавить изображения на сайт через Отредактировать страницу раздел, но изображения не отображаются.
Я осмотрел сайт на наличие ошибок, ни одной не было найдено, однако наткнулся на что-то интересное.
После сравнения html-разметки двух версий сайта рядом, я заметил, что в моей локальной версии отсутствует div, который отображает изображения.
Вот div на живую версию —
Вот моя локальная версия, в которой div не показывается —
Как вы можете видеть в локальной версии есть ul
вместо div class="image-16-8
,
Вот файл php, который отображает эти изображения
<?php
function tbhHeroShortcode($atts)
{
$values = shortcode_atts(array(
'images' => '',
'first-line' => '',
'second-line' => '',
'video' => '',
'link' => '',
), $atts);
ob_start();
?>
<div class="hero">
<?
$images = decode_shortcode_data($values['images']);
if ($images): ?>
<ul data-simple-slider>
<?php foreach ($images as $image): ?>
<li>
<div class="image-16-8" style="background-image: url(<?= $image->url; ?>); "></div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<div class="hero-content">
<div class="hero-content-first-line">
<h1 class="header"><?= decode_shortcode_data($values['first-line']) ?></h1>
</div>
<h1 class="italic-header"><?= decode_shortcode_data($values['second-line']) ?></h1>
<div class="hero-content-cta">
<a class="hollow-button" href="<?= decode_shortcode_data($values['link']) ?>">Learn More</a>
</div>
</div>
<?php if (count($images) > 1): ?>
<div class="hero-controls">
<i class="fa fa-chevron-left hero-controls__left" aria-hidden="true"></i>
<i class="fa fa-chevron-right hero-controls__right" aria-hidden="true"></i>
</div>
<?php endif; ?>
</div>
<?php
$component = ob_get_contents();
ob_end_clean();
return $component;
}
add_shortcode('tbhHero', 'tbhHeroShortcode');
Кто-нибудь имеет представление о том, почему это происходит?
Ну, UL показывает, потому что это прямо в вашем PHP
<div class="hero">
<?
$images = decode_shortcode_data($values['images']);
if ($images): ?>
<ul data-simple-slider>
Тем не менее, на вашем скриншоте из живой версии ваш герой div отличается, это выглядит так
<div class="hero" id>
Вывод, который вы видите, не генерируется одним и тем же файлом, поэтому либо происходит некоторое кэширование браузера / сервера, а то, что вы видите на живом сайте, не отражает текущее состояние вашего php, или каким-то образом ваши обновления php-файла несинхронизирован между двумя средами.
Я предполагаю, что разница между этими двумя сайтами заключается в области «редактирования страницы» любой страницы, которая служит в качестве домашней страницы. Я ожидаю, что в локальной версии есть шорткод [tbh-hero] с изображением в списке, в то время как у другой нет перечисленных изображений или, возможно, вообще нет шорткода. Но, честно говоря, есть много способов, которыми этот код мог бы быть реализован в структуре данной темы.