私はおそらく非常に簡単な修正を持っている小さな問題があります。ドロップダウン選択フォームを作成するために wp_get_archives()
関数を使用しています。下記の完全なコードを参照してください。
<form id="side-Arch">
<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value=""><?php echo esc_attr( __( 'Select Month' ) ); ?></option>
<?php wp_get_archives( array( 'type' => 'monthly', 'format' => 'option', 'show_post_count' => 1 ) ); ?>
</select>
<input type="submit" value="Go" id="submit" />
</form>
アクションを実行するためにonchangeイベントの代わりに送信ボタンを使用するようにしたいです。明らかに、私がすべきことはonchange
要素を削除してフォームアクションを追加することです。機能カテゴリのドロップダウンと同じようにフォーマットしてみました。
<form id="side-Arch" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
<select name="archive-dropdown">
<option value=""><?php echo esc_attr( __( 'Select Month' ) ); ?></option>
<?php wp_get_archives( array( 'type' => 'monthly', 'format' => 'option', 'show_post_count' => 1 ) ); ?>
</select>
<input type="submit" value="Go" id="submit" />
</form>
ただし、これは機能しません。フォームアクションのURLに問題があると思われます。これは、サイトのホームページに送信されるだけです。
これをGo
ボタンの使用に切り替える方法について何かアイデアがありますか?
それはうまくいきません。
$_GET
変数をリッスンしません。その$_GET
変数をリッスンする関数を追加する必要があります。
これをfunctions.php
ファイルに追加するだけです。
add_action( 'template_redirect', 'wpse_archive_select' );
function wpse_archive_select(){
if( isset( $_GET[ 'archive-dropdown' ] ) ){
die( wp_safe_redirect( $_GET[ 'archive-dropdown' ] ) );
}
}