• Всем привет. Голова уже пухнет, не могу сообразить.
    Имеются post_type:
    1. usluga (Покраска, Рубка, Установка)
    2. master (Василий, Петр, Иван)
    Понятное дело у каждого из них куча полей:
    В услугах id, название, цена, время выполнения, миниатюра.
    В мастерах id, Имя, возраст, опыт работы, миниатюра (фото) etc.

    В услуги произвольным полем добавил мастеров.
    Т.е.
    В услугу Покраска могут выполнять Василий и Петр
    Услугу Рубка могут выполнять Василий и Иван
    А услугу Установка может выполнять только Иван

    Задача при просмотре страницы Василия вывести список услуг, которые он может выполнять.
    Каким образом вообще строятся такие запросы query_posts()?
    К примеру для вывода услуг:

    query_posts("post_type=usluga&orderby=date" );

    А нужно произвести ту же выборку с id мастера.
    Т.е. показать услуги, в которых произвольным полем добавлен master с id например 1.

Просмотр 1 ответа (всего 1)
  • И тишина 🙂
    Сейчас я делаю выборку так:

    <?php
    	$author_ids = $author[ID];
    	query_posts("post_type=usluga&orderby=date&posts_per_page=30" );
    	if( have_posts()){
    		while ( have_posts() ){ the_post();
    			$arr=get_field('master');
    			foreach($arr as $key){
    				$ved = $key->post_author;
    				if ($author_ids==$ved){
    				?>
    				<a href="<?php the_permalink(); ?>" target="_blank">
    				<?PHP the_title();
    				echo '</a><br>';
    				}
    			}
    		}
    	}
    	wp_reset_query();
    ?>

    Т.е. изначально выбираю все посты типа usluga
    Затем получаю содержимое произвольного поля master (которое является тоже постом)
    Запускаю цикл на проверку и в случае совпадения вывожу ссылку на услугу.
    Но это корявое решение.
    МОжет кто на основании приведенного примера подскажет как это записать в одну строчку чрез query_posts.

Просмотр 1 ответа (всего 1)
  • Тема «Сложный запрос query_posts()» закрыта для новых ответов.