brett
  • 0
Новичок

Интеллектуальная фильтрация поиска

  • 0

Мне нужна помощь с поисковым плагином: WP Custom Fields Search. У меня есть три выпадающих меню: 1. Город 2. Пригород 3. Кухня Мне нужно, чтобы при выборе города он автоматически перемещал 2. Пригороды в соответствующие этому городу. 3. является настраиваемым полем, т.е. в любом городе могут быть китайские рестораны. пригород, так что это не имеет значения, а только определенные пригороды в определенных городах…

Итак, как мне отфильтровать любые идеи?

Share
  1. Проблема с настраиваемыми полями заключается в том, что между ними нет связи, поэтому вы не можете связать пригороды с городами.

    Лучшим способом было бы создать иерархическую пользовательскую таксономию, чтобы вы могли иметь отношение родитель-потомок (например, категории и подкатегории). так:

    add_action( 'init', 'create_locations_taxonomies', 0 );
    
    //create two taxonomies, genres and writers for the post type "book"
    function create_locations_taxonomies() 
    {
      // Add new taxonomy, make it hierarchical (like categories)
      $labels = array(
        'name' => _x( 'Locations', 'taxonomy general name' ),
        'singular_name' => _x( 'Location', 'taxonomy singular name' ),
        'search_items' =>  __( 'Search Locations' ),
        'all_items' => __( 'All Locations' ),
        'parent_item' => __( 'Parent Location' ),
        'parent_item_colon' => __( 'Parent Location:' ),
        'edit_item' => __( 'Edit Location' ), 
        'update_item' => __( 'Update Location' ),
        'add_new_item' => __( 'Add New Locations' ),
        'new_item_name' => __( 'New Location' ),
        'menu_name' => __( 'Locations' ),
      );    
    
      register_taxonomy('location',array('post','page','custom type'), array(
        'hierarchical' => true,
        'labels' => $labels,
        'show_ui' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'location' ),
      ));
    }
    

    Это добавит мета-поле на экран создания/редактирования сообщений, как и категории, но для местоположения, чтобы вы могли добавлять города и пригороды в качестве их дочерних местоположений.

    после того, как вы это сделали, вы можете создать раскрывающийся список только с родительскими местоположениями (городами) с помощью wp_dropdown_categories() примерно так:

    $args = array(
        
        'show_option_none'   => 'select your location',
        'hide_empty'         => 1, 
        'echo'               => 1,
        'selected'           => 0,
        'hierarchical'       => 1, 
        'name'               => 'p-location',
        'class'              => 'postform',
        'depth'              => 1,
        'tab_index'          => 0,
        'taxonomy'           => 'location',
        'hide_if_empty'      => true );
        
     wp_dropdown_categories( $args );
    

    Затем вы можете использовать Jquery/ajax, чтобы поймать событие изменения этого раскрывающегося списка и получить дочерние элементы (пригороды) выбранного идентификатора и заполнить второй раскрывающийся список.

    Он не завершен, но он должен помочь вам начать.

    • 0
  2. Вы также можете взглянуть на этот замечательный учебник/документ от Kirsty Burgoine с хорошим объяснением того, как это сделать с пользовательскими типами записей.

    http://sixrevisions.com/wordpress/custom-fields-search/

    • 0

Оставить ответ

You must login to add an answer.