2013-07-26 4 views
0

Используя этот бит кода в моей темы WordPress:Выбранный вариант для текущего URL в выпадающем списке не работает

<select name="archive-dropdown" onChange="document.location.href=this.options[this.selectedIndex].value;"> 
<option value="">Select month</option> 
<?php wp_get_archives('type=monthly&format=option'); ?> 
</select> 

Взято отсюда: http://codex.wordpress.org/Function_Reference/wp_get_archives

Это выводимый код

<select name="archive-dropdown" onChange="document.location.href=this.options[this.selectedIndex].value;"> 
<option value="">Select month</option> 
<option value='http://www.domain.com/?m=201307'> July 2013 </option> 
<option value='http://www.domain.com/?m=201306'> June 2013 </option> 
<option value='http://www.domain.com/?m=201305'> May 2013 </option> 
</select> 

Например, если я выбираю июль, появляется страница с июльским архивом, и я проверил, что адрес страницы верен: http://www.domain.com/?m=201307

Но параметр Июль не выбран в раскрывающемся списке. Я понимаю, что бит javascript в поле onChange сравнивает документ href с параметрами и затем выбирает значение параметра соответствия, но он, похоже, не работает.

Любая помощь?

ответ

3

Понял, что создал пользовательский фильтр в моих функциях темы WordPress. Размещенные это в моей ТЕМЫ functions.php:

function get_archives_link_mod ($link_html) { 
    preg_match ("/value='(.+?)'/", $link_html, $url); 
    $requested = "http://{$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}"; 
    if ($requested == $url[1]) { 
     $link_html = str_replace("<option", "<option selected='selected'", $link_html); 
    } 
    return $link_html; 
} 

Тогда разместило в моей ТЕМЫ archive.php:

<form action="" method="get"> 
    <select name="archive-dropdown" onChange="document.location.href=this.options[this.selectedIndex].value;"> 
    <option value="">PICK MONTH</option> 
     <?php add_filter("get_archives_link", "get_archives_link_mod"); ?> 
     <?php wp_get_archives('type=monthly&format=option'); ?> 
    </select> 
</form> 

Я в основном взял код предложил here для выделения текущей ссылки в версии списка по умолчанию в wp_get_archives() и изменен это для формата опций функции. Потребовалось немного копать, как не-кодер и разместить его здесь, вероятно, так же важно, как дерево, падающее ни с кем вокруг, чтобы услышать его, но я просто дам себе похлопывание по спине и притвориться, что это чужая рука в этом печальном и пустынном мире.

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