За последние 24 часа нас посетили 16792 программиста и 1620 роботов. Сейчас ищет 1381 программист ...

Нужна помощь в создании Drop Down Menu (wordpress)

Тема в разделе "PHP Free-Lance", создана пользователем OZ-Style, 18 дек 2010.

  1. OZ-Style

    OZ-Style Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    26
    Симпатии:
    0
    На сайте заданы несколько пользовательских таксономий при включенном ЧПУ:
    актеры, режиссеры, страна, год.
    Необходимо создать для каждой таксономии DD меню (при помощи form, select, option).
    По умолчанию, в каждом меню должно показываться название таксономии (label).
    При выборе определенного значения в одном из меню, при переходе на соответствующую
    страницу в видимом поле меню должно остаться соответствующее значение, то есть
    если мы выбрали в меню "год" - 2008 год, то при переходе на соответствующую страницу
    в этом меню должно остаться значение "2008 год".

    Таксономии созданы таким образом (в файле functions.php):

    add_action( 'init', 'create_my_taxonomies', 0 );
    function create_my_taxonomies() {
    register_taxonomy( 'year', 'post', array( 'hierarchical' => false, 'label' => 'год', 'query_var' => true, 'rewrite' => true ) );
    register_taxonomy( 'country', 'post', array( 'hierarchical' => false, 'label' => 'страна', 'query_var' => true, 'rewrite' => true ) );
    register_taxonomy( 'director', 'post', array( 'hierarchical' => false, 'label' => 'режиссер', 'query_var' => true, 'rewrite' => true ) );
    register_taxonomy( 'actors', 'post', array( 'hierarchical' => false, 'label' => 'актеры', 'query_var' => true, 'rewrite' => true ) );
    }


    Сам смог сделать меню пока так:

    function the_dropdown_taxonomy($taxonomy) {
    $id = "{$taxonomy}-dropdown";
    $js =<<<SCRIPT
    <script type="text/javascript">
    jQuery(document).ready(function($){
    $("select#{$id}").change(function(){
    window.location.href = $(this).val();
    });
    });
    </script>
    SCRIPT;
    echo $js;
    $terms = get_terms($taxonomy);
    echo "<select style=\"background-color:#222; color:#ccc; border:none;\" name=\"{$id}\" id=\"{$id}\">";
    echo '<option value="#">'; echo $taxonomy; echo '</option>';
    foreach($terms as $term) {
    echo '<option value="';
    echo get_term_link(intval($term->term_id),$taxonomy);
    echo '">' . "{$term->name}</option>";
    }
    echo "</select>";
    }

    add_action('init','jquery_init');
    function jquery_init() {
    wp_enqueue_script('jquery');
    }


    <?php the_dropdown_taxonomy('actors'); ?>
    <?php the_dropdown_taxonomy('director'); ?>
    <?php the_dropdown_taxonomy('year'); ?>
    <?php the_dropdown_taxonomy('country'); ?>

    вот - watchonliner.ru (сайт в разработке)

    Но это не устраивает, т.к.:
    1) нужно чтобы в меню по умолчанию отображались "label"
    2) при переходе на выбранный пункт любого из меню,
    выбранный пункт должен остаться по умолчанию в том меню
    из которого был выбор.

    Буду рад любым предложениям.