Как правильно править в БД данные тем WordPress? Как правильно подменить данные из БД для переменной WordPress?
Здравствуйте!
Я пытаюсь снять для себя ограничения с бесплатного шаблона WordPress, который мне идеально подходит для моего сайта.
У него стоит ограничение на показ слайдов, всего 2 слайда и подпись под них со ссылкой. В штатной формочке есть поля для их ввода, но всего 2. Мне надо больше, 11. Как показывать 11 фото я нашел как обмануть, в счетчик цикла сделал не $i=2, а $i=11 и под условие else в нужную папку накидал свои фото с именами под счетчик i.
Но остались еще подписи к фото и ссылки перехода при на фото.
Вся эта кухня формируется в одном небольшом файле, в котором такой вот цикл:
<div class="flex-container"> <!--slideshow--> <div class="flexslider"> <ul class="slides"> <?php for ($i = 1; $i <= 11; $i++) { ?> <li> <a href="<?php echo esc_url(of_get_option('slider_link'.$i)); ?>"><img src="<?php if(esc_url(of_get_option('slider_image'.$i)) != NULL) { echo esc_url(of_get_option('slider_image'.$i)); } else echo get_template_directory_uri() . '/images/slide'.$i.'.png' ?>" alt="<?php echo esc_html(of_get_option('slider_head'.$i)); ?>" /></a> <p class="flex-caption"><?php if(esc_html(of_get_option('slider_head'.$i)) != NULL) { echo esc_html(of_get_option('slider_head'.$i)); } else echo "+7 (925) 518-09-55" ?><p> </li> <?php } ?> </ul> </div> <!--slideshow end--> </div><!--flex container end--> <div class="clear"></div>
Этот цикл грузится с БД переменными из вот этой строки:
s:12:"slider_head1";s:0:"";s:13:"slider_image1";s:0:"";s:12:"slider_link1" и т.д., всего 2 варианта.
В итоге с моими 11ю вариантами тематических страниц и фото к ним, получается такая картина в браузере для показа
<div id="slider_container"> <div class="row"> <div class="twelve columns"> <div class="flex-container"> <!--slideshow--> <div class="flexslider"> <ul class="slides"> <li class="" style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;"> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide1.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide2.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide3.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: list-item;" class="flex-active-slide"> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide4.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide5.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide6.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide7.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide8.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide9.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide10.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> <li style="width: 100%; float: left; margin-right: -100%; position: relative; display: none;" class=""> <a href=""><img src="http://jcb.msk.ru/wp-content/themes/craft/images/slide11.png" alt=""></a> <p class="flex-caption">ТЕКСТ</p><p> </p></li> </ul> <ul class="flex-direction-nav"><li><a class="flex-prev" href="#">Previous</a></li><li><a class="flex-next" href="#">Next</a></li></ul></div> <!--slideshow end--> </div><!--flex container end--> <div class="clear"></div> </div> </div> </div>
Скажу сразу - я экскаваторщик, а не программист, по этому не знаю кодов.
По этому у меня возникла первая идея: в БД переменные: slider_head1 и slider_link1 записать руками и сделать их от slider_head1 и slider_link1 до slider_head11 и slider_link11.
НО!!! Я не знаю ничего про эти БД и мне достаточно изменить хоть букву, хоть перенести энтнром строку и уже шаблон не видит мою писанину, а вместо нее ставит свою по умолчанию. ПОЧЕМУ? Как правильно изменять строки в БД? Это первый вопрос.
Второй вопрос касается моего второго варианта: В стандартной панели WordPress есть простой доступ к файлу с циклом, который этот flex container формирует, по этому меня есть вторая идея: Вписать туда переключатель switch/case и в нем наполнить значениями эти slider_head.$i и slider_link.$i просто руками прямо там 11-ю вариантами своего текста. Но опять же, мое невежество мне не позволяет это сделать.
Я пробовал просто вместо slider_head.$i писать slider_head1 и все - сайт не работает. Я просто не понимаю правописания этого html кода.
Помогите пожалуйста!
Как мне написать так, чтобы текст выводился по значению i от 1 до 11?
Спасибо.
Леонид
Я предлагаю НЕ заморачиваться с БД, а храните данные в файле, переменная $data_slides
Код, что я скинул нужно аккуратно перенести на код Вашей темы.
Как уже догадались: $data_slides - нужно заполнить данными, я только для примера привел 5 ссылок/текстов