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

Функции

Вступайте в группу ВК, чтобы не пропустить публикацию новых функций.

Идеи по выводу или сортировке функций

  • Добавить ответ

OK — В длинной портянке (как сейчас ) пользоваться искать неудобно , колонками было лучше (10)

Недорого

Заказываем еду теперь на Ipizza.ru. Очень понравился сервис. Все очень вкусно и недорого.

ipizza.ru

Функции 114 комментариев
Полезные 4 Все
  • Добрый день, Кама! Отличный справочник, но вот столкнулся с несколькими функциями, которые были добавлены совсем недавно, но в твоем мега удобном и популярном справочнике их еще нет. К примеру wp_audio_shortcode и wp_playlist_shortcode. Я то могу и официальный англоязычный кодекс почитать, но вот большинству пользователей это будет не очень удобно. Надеюсь на скорое пополнение самого популярного справочника в рунете. Удачи тебе!

    1
    Ответить1.5 года назад #
  • campusboy1946 cайт: www.youtube.com/c/wpplus

    При нажатии "Свернуть всё" не все пункты сворачиваются.

    Ответить1.1 года назад #
    • Kama4659

      Вчера структурировал функции, перемещал туда-сюда, рубрики создал некоторые. В результате вылез баг... Спасибо за коммент! Поправил! thank_you

      Ответить1.1 года назад #
  • Семен cайт: vapelib.ru

    Верни пожалуйста развёрнутый вид, ну или функцию "развернуть всё" - неудобно вот так.

    Ответить1.1 года назад #
  • Иван cайт: malginovdesign.ru

    Кама, нужна помощь. Написал такую фунцкию для поиска, сат выдает мне "Warning: array_merge(): Argument #1 is not an array in ../functions.php on line 81". Где здесь ошибка? Спасибо заранее за ответ.

    function go_filter() { // наша функция
    	$args = array(); // подготовим массив 
    	$args['meta_query'] = array('relation' => 'AND'); // отношение между условиями, у нас это "И то И это", можно ИЛИ(OR)
    	global $wp_query; // нужно заглобалить текущую выборку постов
    
    	if ($_GET['sellorrent'] != '') { // если передана фильтрация по разделу
    		$args['meta_query'][] = array( // пишем условия в meta_query
    			'key' => 'sellorrent', // название произвольного поля
    			'value' => (int)$_GET['sellorrent'], // переданное значение произвольного поля
    			'type' => 'numeric' // тип поля, нужно указывать чтобы быстрее работало, у нас здесь число
    			);
    	}
    
    	if ($_GET['min_price'] != '' || $_GET['max_price'] != '') { // если передано поле "Цена от" или "Цена до"
    		if ($_GET['min_price'] == '') $_GET['min_price'] = 0; // если "Цена от" пустое, то значит от 0 и выше
    		if ($_GET['max_price'] == '') $_GET['max_price'] = 9999999; // если "Цена до" пустое, то будет до 9999999
    		$args['meta_query'][] = array( // пишем условия в meta_query
    			'key' => 'price', // название произвольного поля
    			'value' => array( (int)$_GET['min_price'], (int)$_GET['max_price'] ), // переданные значения ОТ и ДО для интервала передаются в массиве
    			'type' => 'numeric', // тип поля - число
    			'compare' => 'BETWEEN' // тип сравнения, здесь это BETWEEN - т.е. между "Цены от" и до "Цены до"
    			);
    	}
    
    	if ($_GET['min_area'] != '' || $_GET['max_area'] != '') { // если передано поле "Цена от" или "Цена до"
    		if ($_GET['min_area'] == '') $_GET['min_area'] = 0; // если "Цена от" пустое, то значит от 0 и выше
    		if ($_GET['max_area'] == '') $_GET['max_area'] = 9999999; // если "Цена до" пустое, то будет до 9999999
    		$args['meta_query'][] = array( // пишем условия в meta_query
    			'key' => 'area', // название произвольного поля
    			'value' => array( (int)$_GET['min_area'], (int)$_GET['max_area'] ), // переданные значения ОТ и ДО для интервала передаются в массиве
    			'type' => 'numeric', // тип поля - число
    			'compare' => 'BETWEEN' // тип сравнения, здесь это BETWEEN - т.е. между "Цены от" и до "Цены до"
    			);
    	}
    
    	if ($_GET['min_floor'] != '' || $_GET['max_floor'] != '') { // если передано поле "Цена от" или "Цена до"
    		if ($_GET['min_floor'] == '') $_GET['min_floor'] = 0; // если "Цена от" пустое, то значит от 0 и выше
    		if ($_GET['max_floor'] == '') $_GET['max_floor'] = 9999999; // если "Цена до" пустое, то будет до 9999999
    		$args['meta_query'][] = array( // пишем условия в meta_query
    			'key' => 'floor', // название произвольного поля
    			'value' => array( (int)$_GET['min_floor'], (int)$_GET['max_floor'] ), // переданные значения ОТ и ДО для интервала передаются в массиве
    			'type' => 'numeric', // тип поля - число
    			'compare' => 'BETWEEN' // тип сравнения, здесь это BETWEEN - т.е. между "Цены от" и до "Цены до"
    			);
    	}
    	if (!empty($_GET['rooms'])) { // если передан массив с фильтром по комнатам
    		$args['meta_query'][] = array( // пешем условия в meta_query
    			'key' => 'rooms', // название произвольного поля
    			'value' => $_GET['rooms'], // переданное значения, $_GET['rooms'] содержит массив со значениями отмеченных чекбоксов
    			'type' => 'numeric', // тип поля - число
    			'compare' => 'IN' // тип сравнения IN, т.е. значения поля комнат должно быть одним из значений элементов массива
    			);
    	}
    
    	if ($_GET['city_area'] != '') { // если передана фильтрация по разделу
    		$args['meta_query'][] = array( // пишем условия в meta_query
    			'key' => 'city_area', // название произвольного поля
    			'value' => (int)$_GET['city_area'], // переданное значение произвольного поля
    			'type' => 'numeric' // тип поля, нужно указывать чтобы быстрее работало, у нас здесь число
    			);
    	}
    	}       
    query_posts(array_merge($args,$wp_query->query));
    Ответитьгод назад #
    • Kama4659

      А где аргументы то? go_filter() почему ничего не возвращает и вообще не вызывается... Абсурд... в query_posts(array_merge($args,$wp_query->query)); $args не определена... wacko

      Ответитьгод назад #
      • Иван
        Ответитьгод назад #
        • Kama4659

          Ну вот и смотрите сами. Там функция

          query_posts(array_merge($args,$wp_query->query));

          Вызывается внутри функции go_filter(), а тут снаружи - абсурд, как я и сказал...

          Ответитьгод назад #
          • Иван

            не знаю, как, но, в итоге этот код работает, в предпоследней строке лишняя скобка }
            Полный код searchform.php:

            <form class="filter" action="" method="get"><!-- action пустой, чтобы ссылалось на текущую страницу -->
            	<div class="form-header">
            		<h2>Поиск <?php
            			if (is_post_type_archive(aprts)) {
            				echo 'квартир на продажу' ;
            			} elseif (is_post_type_archive(rooms)) {
            				echo 'комнат на продажу' ;
            			} elseif (is_post_type_archive(houses)) {
            				echo 'домов на продажу' ;
            			} elseif (is_post_type_archive(places)) {
            				echo 'участков на продажу' ;
            			} elseif (is_post_type_archive(hotels)) {
            				echo 'гостиниц на продажу' ;
            			} elseif (is_post_type_archive(commerce)) {
            				echo 'коммерческих помещений на продажу' ;
            			} elseif (is_post_type_archive(apts-rent)) {
            				echo 'квартир в аренду' ;
            			} elseif (is_post_type_archive(hotels)) {
            				echo 'гостиничных номеров' ;
            			}
            			?> в Геленджике и окрестностях.
            		</h2>
            	</div>
            	<?php if( is_post_type_archive( 'aprts-rent' ) or is_post_type_archive( 'hotelrooms-rent' ) ){
            	echo '<div class="rent-time">
            		<span class="title">Срок аренды</span>
            		<label>
            			<input id="rent1" type="radio" name="rent-time" value="1" /><span>На длительный срок</span>
            		</label>
            		<label>
            			<input id="rent1" type="radio" name="rent-time" value="2" /><span>Посуточно</span>
            		</label>
            	</div>';
            	} ?>
            
            	<label><span>Цена</span>
            		<input type="number" name="min_price" placeholder="от" />
            		<input type="number" name="max_price" placeholder="до" /><b>руб</b>
            	</label>
            
            	<label><span>Общая площадь</span>
            		<input type="number" name="min_area" placeholder="от" />
            		<input type="number" name="max_area" placeholder="до" /><b>м²</b>
            	</label>
            
            	<label><span>Этаж</span>
            		<input type="number" name="min_floor" placeholder="от" />
            		<input type="number" name="max_floor" placeholder="до" />
            	</label>
            
            	<div class="checks-container"><span>Количество комнат</span>
            		<label><input type="checkbox" name="rooms" value="2"/><span>Студия</span></label>
            		<label><input type="checkbox" name="rooms" value="3"/><span>1</span></label>
            		<label><input type="checkbox" name="rooms" value="4"/><span>2</span></label>
            		<label><input type="checkbox" name="rooms" value="5"/><span>3</span></label>
            		<label><input type="checkbox" name="rooms" value="6"/><span>4+</span></label>
            	</div>
            
            	<label><span>Район города</span>
            		<select name="city_area"> <!-- Раздел - селектлист -->
            			<option value="" selected>Любой</option>
            			<option value="1">Центр</option>
            			<option value="2">Толстый мыс</option>
            			<option value="3">мкр. Южный</option>
            			<option value="4">мкр. Северный</option>
            			<option value="5">мкр. Западный</option>
            			<option value="6">Тонкий мыс</option>
            			<option value="7">Голубая бухта</option>
            			<option value="8">за городом</option>
            		 </select>
            	</label>
            	<div class="buttons-container">
            		<button type="reset" class="reset"></button>
            		<button type="submit" class="submit">Поиск</button> 
            	</div>
            
            </form>

            вдруг кому пригодится. Работать будет на alexandrarealty.ru, доделаю на этой неделе.

            Ответитьгод назад #
  • Игорь cайт: steshka.ru

    Привет,
    скажи пожалуйста, а функция "свернуть развернуть" есть на сайте или это личный код, я сейчас использую скрипт readmore.js, но он сильно не удобен, так как конфликтует, хотелось бы использовать твой, как и оглавление, которое до сих пор работает на моем сайте,
    Спасибо

    • Kama4659

      Скрипт который на этой странице? Это самопис, там не все так просто я бы сказал что подойдет только для подобной структуры...

  • Реализовали моё предложение по поводу "Избранного" - очень удобно, спасибо! smile

    • Kama4659

      Тебе спасибо! Еще не до конца сделал, нужно еще доделать удаление из меню и сортировку там же...

      2
  • Виктор

    Здравствуйте уважаемый Кама
    Всегда с большой пользой и удовольствием пользовался Вашим сайтом. Но в последнее время при захождении на Ваш сайт комп просто воет от нагрузки и тормозит. Не знаю что Вы сюда воткнули, но стоило ли оно того?

    • Kama4659

      Такой проблемы не наблюдаю. Сейчас чуть оптимизировал один скрипт. Но он не мог дать ужасной нагрузки, небольшой да мог...

      Какой браузер? Возможно в хроме расширение стоит какое-то для ссылок, которое это делает. На этой странице ссылок много очень, сюда надо смотреть...

      1
  • Предлагаю в поле поиска в результатах сделать возможность перехода на страницу "Функции", где сразу будет производиться поиск по заданному ключу.
    Скриншот
    Иногда забиваешь запрос, но в результатах не то, что тебе нужно, а так было бы удобно сразу перейти на поиск функций. Можно так же и хуки добавить.

    • Kama4659

      Много нюансов из за которых предложение теряет смысл... Просто жми интер, если не нашлось, там гугл или яндекс подберет отлично!

  • Navili cайт: navili.ru @

    Интересные варианты в опросе «Идеи по выводу или сортировке функций». Правда, во втором, вероятно, опечатка. PGF или PDF? smile

    Ответить3 месяца назад #

Здравствуйте, !

Ваш комментарий