WordPress как на ладони
wordpress jino

Как правильно править в БД данные тем 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?
Спасибо.
Леонид

0
Леонид 8 месяцев назад
  • 1
    stepan1187 cайт: www.weblancer.net/users/stepanko/?affili...
    <?php 
    	$data_slides = array(
    		array( 'http://wp-kama.ru/#1', 'Текст для слайдера 1' ),
    		array( 'http://wp-kama.ru/#2', 'Текст для слайдера 2' ),
    		array( 'http://wp-kama.ru/#3', 'Текст для слайдера 3' ),
    		array( 'http://wp-kama.ru/#4', 'Текст для слайдера 4' ),
    		array( 'http://wp-kama.ru/#5', 'Текст для слайдера 5' ),
    	);
    	for ($i = 1; $i <= 11; $i++)
    	{
    	?>
    			<li>
    			  <a href="<?php echo $data_slides[ $i ][0]; ?>"><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="" /></a>
    
    				<p class="flex-caption"><?php echo $data_slides[ $i ][1]; ?><p>
    			</li>
    
    			<?php
    	}
    	?>

    Я предлагаю НЕ заморачиваться с БД, а храните данные в файле, переменная $data_slides

    Код, что я скинул нужно аккуратно перенести на код Вашей темы.

    Как уже догадались: $data_slides - нужно заполнить данными, я только для примера привел 5 ссылок/текстов

    stepan 8 месяцев назад

    Не забывайте ставить +
    И изменяйте вопрос на "решенный", если вопросов больше нет.
    Код работоспособный - вопросов НЕ должно быть smile

    Леонид 8 месяцев назад

    Подскажите пожалуйста еще один момент: В какой программе можно эти коды проверять по шагам? Типа жмешь на F8 и желтая срока идет по строчкам цикла и можно видеть чем набились переменные.
    А то я просто гадаю от фантазии что это такое написано.

    Леонид 8 месяцев назад

    Я все перенес, но у меня на слайдере выводится, плюс ко всему еще и путь к картинке.
    Поглядите пожалуйста http://jcb.msk.ru/
    Как убрать вывод этого на экран, но сохранить переход по ссылке при нажатии на картинку?

    Леонид 8 месяцев назад

    Все ок, исправил

    Леонид 8 месяцев назад

    Спасибо огромное!

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