Задать вопрос
Ответы пользователя по тегу WordPress
  • Создать тысячу страниц WP?

    @sergey_harchevnikov
    Web программист
    У меня был подобный случай.
    Надо было сделать заголовок мебель на балкон + город.
    А в тексте добавлять город в нужных местах.
    Я делал так:
    Пишем скрипт на php который брал список фраз которые надо вставить в текст и заголовок из .txt файла и через цикл foreach прогоняем эти фразы подставляя из в текст, записывая это всё в .csv

    А потом через плагин импорта, импортировал созданный .csv и создавал страницы.

    В общем не знаю как подробней объяснить.

    Короче вот код
    <?
    function getfile($cites){
         //Читаем полученный файл
         $res = file_get_contents($cites); 
         //Разбиваем на массив использую 
         //как разделитель символы переноса строки 
         $lines = explode(",", $res);
    
    return $lines; //Функция возвращает переменную с массивом городов
     } 
    
    $cites = getfile('cites.txt'); //предаём массив в переменную
    
    function getContent($cites){
       $fp = fopen('мебель на балкон.csv', 'w'); //Создаём csv файл для импорта
    
       $infile = array('title', 'content');
        fputcsv( $fp , $infile, ";");
        
        foreach($cites as $key => $city) {
           $title = 'Мебель на балкон и лоджию в ' . $city;
    
           $content = '
      
      <h2>Шкаф на балкон в '. $city .'</h2>
    
      <p>Шкафы от компании <a href="/">Московские балконы</a> стильные и в то же время практичные. </p>
      <p>Собственное производство от самых маленьких деталей и элементов до максимальных размеров позволяет нам сделать для Вас самую выгодную цену.</p>
      
    
      <div class="text-center m10">
      <a href="#callbackwidget" class="btn-sale">Получить скидку 20%</a>  
      </div>
      
      <h2>Тумба на балкон в '. $city .'</h2>
      
     <p>Тумбы для балкона или лоджии – это обычно небольшие шкафчики, которые занимают мало места. Как и вся наша мебель, они сделаны из влагостойкого материла. Это идеальное решение для маленького балкона или лоджии с ограниченным пространством.</p>  
    <p>Тумбу на балконе или лоджии можно установить как для хранения вещей, так и в качестве небольшого столика.</p>';	
    
    
        	echo $title . '<br>';
        	echo $content;
    
            $infile = array($title,  $content); 
            fputcsv( $fp , $infile, ";");
        
        }
       fclose($fp);
    
    }
    getContent($cites);
    
    
    ?>
    Ответ написан
    1 комментарий
  • Как сделать, что бы данные из шорткода в ворпрессе загружаются не на самом верху страницы?

    @sergey_harchevnikov Автор вопроса
    Web программист
    Нашел сам ответ :) Тут функция должна возвращать параметры, а не показывать. Обычно достаточно echo на return заменить, но в более сложных функциях, типа моей, надо обверку делать, для буферизации. Типа:
    <?php
     
    $text = getShortcodeOutput();
    echo "--- before text\n";
    echo $text;
    echo "--- after text\n";
     
    function getShortcodeOutput() {
        ob_start();
        echo "some text1\n";
        echo "some text2\n";
        echo "some text3\n";
        echo "some text4\n";
        $result = ob_get_contents();
        ob_end_clean();
        return $result;
    }


    Вот что у меня получилось:
    public function shortcodeSliderInit($atts)
    	{
    		ob_start();
    		extract(shortcode_atts( array(
    			'name'		=> '',
    			'slideshow' => 0,
    			'animation' => 'fade',
    			'controlnav'=> 0,
    			'randomize' => 0,
    		), $atts));		
    		
    		if (!$name) {
    			return '';
    		}
    		
    		$slider = ale_sliders_get_slider($name);
    		if (!$slider) {
    
    			return '';
    		}
    		
    		$slider_id = sanitize_title('ale-slider-' . $slider['slug'] . '-' . wp_generate_password(5, false));
    
    		?>
    		<div id="<?php echo $slider_id ?>" class="ale-slider-slides">
    			<div class="owl-carousel owl-theme">
    			
    					<?php foreach ($slider['slides'] as $slide) : ?>
    						
    						
    							<?php if ($slide['image']) : ?>
    								
    									<?php if ($slide['url']) : ?>
    										<a href="<?php echo $slide['url'] ?>" class="swipebox">
    									<?php endif; ?>
    											<img src="<?php echo $slide['image']?>" alt="<?php $slide['title'] ?>" />
    									<?php if ($slide['url']) : ?>
    										</a>
    									<?php endif; ?>
    							
    							
    							<?php endif; ?>
    						
    					<?php endforeach; ?>
    			
    			</div>
    		</div>
    		
    		<?php
    		  $result = ob_get_contents();
    		  ob_end_clean();
    		  return $result;
    	}


    Всё заработало как надо!
    Ответ написан
    Комментировать