2016-11-09 5 views
0

Я застрял в этой проблеме уже неделю. Я бы хотел создать панель поиска, в которой будет отображаться список страниц с данными, заполненными настраиваемыми полями. Например, если я выбираю «Pre Owned» как статус в строке поиска, он должен показывать страницы с настраиваемым полем, где метаданные «Pre Owned». Я не знаю, как это сделать. Я знаю, что можно искать в пользовательских сообщениях, но я хочу это на страницах. http://jaroyachting.com/dev/yacht-list/ - это то, как выглядит список.Поиск страниц с использованием настраиваемых полей

Этот код - это то, что я пробовал, не работает. $ searchYachts как я называю мои мета-данные

if(isset($_POST['filter'])) { 

global $wp_query; // get the global object 
$searchYachts = get_post_meta($page->ID, 'yachtinfo', true); 
$thesearch = get_search_query(); // get the string searched 

// merge them with one or several meta_queries to meet your demand 
$args = array_merge($wp_query->query, array( 
    'meta_query' => array(
    array(
     'key' => $searchYachts["status"], 
     'value' => $_POST['status'], 
     'compare' => 'IN' 
    ) 
) 
    )); 
query_posts($args); // alter the main query to include your custom parameters 

Спасибо заранее!

ответ

0

Вот в этом мета-запроса вы можете передать мета значения,

$args = array(
    'meta_query' => array(
     array(
      'key' => 'cp_annonceur', 
      'value' => 'professionnel', 
      'compare' => '=', 
     ) 
    ) 
); 
$query = new WP_Query($args); 
+0

Эй, спасибо за вашу помощь, но, к сожалению, это тоже не работает. Это будет мой запрос: if (isset ($ _ POST ['filter'])) { $ searchYachts = get_post_meta ($ page-> ID, 'yachtinfo', true); $ status = $ _POST ['status']; глобальный $ wp_query; // получить глобальный объект $ арг = массив ( 'meta_query' => Array (массив ( 'ключ' => $ searchYachts [ 'статус'], 'значение' => '$ новый', ' compare '=>' = ', ) ) ); $ query = new WP_Query ($ args); } – Casper

+0

ключ должен быть метазначением строки, а в значении передать переменную post, исходящую из формы @Casper –

+0

Я тоже пробовал это – Casper

0

Это, насколько я получил. Но теперь он показывает каждую страницу ...

if(isset($_POST['filter'])) { 
$status = $_POST['status']; 
$args = array(
    'meta_query' => array(
     array(
     'key' => 'status', 
     'value' => '$status', 
     'compare' => '=', 
     ) 
    ) 
); 
$property_query = new WP_Query($args); 

?>     <div id="pages"> 
<?php $pages = get_pages(array($property_query)); ?> 
<ul style="list-style:none;"> 
    <?php foreach ($pages as $page): ?> 
     <div id="schip"> <li> 
      <div id="fotoSchip"><?php echo '<a href="' . get_page_uri($page)  .'">' . get_the_post_thumbnail($page->ID, array(365, 230)) . '</div> 
<div id="infoSchip"><h5>' . $page->post_title; ?></h5></a> 
     <?php 
     $yacht = get_post_meta($page->ID, 'yachtinfo', true); 
          foreach($yacht as $list){ 
           echo '<div id="statusSchip">' .  $list['status'] . '</div>'; 
            echo '<div id="prijsSchip">Price: ' .  $list['price'] . '</div>'; 
           } 

endforeach; 


} 
Смежные вопросы