WordPressの勉強がてら

WordPressの初心者が独学でホームページ作成したときの技術メモ

WordPressの勉強がてら

「Events Manager」の絞り込み検索ページへリンク(条件込み)を張る方法

      2015/06/08

イベントカレンダーに欠かせないプラグイン「Events Manager」。今回はイベントページへリンクを張る時に、検索フォームの絞り込み条件をあらかじめ指定しておいてページを開いたときにその結果を表示させる方法をメモしておきます。

これまでのEvents Manager関連記事
・「Events Manager」プラグイン を使ってイベントカレンダーを作成する
・「Events Manager」の検索フォームにイベント属性フィールドを追加する
・「Events Manager」の検索フォームにカスタム分類(カスタムタクソノミー)フィールドを追加する
・「Events Manager」でオリジナルのプレースホルダーを追加する

 

 検索フォームを表示させる

まず、検索フォームを表示させるようにします。設定メニューから「ページ」タブ-「イベントリスト/アーカイブス」のイベントサーチを表示させるようにチェックを入れる。このときカレンダーも表示させるようにすると検索フォームは表示されない仕様みたいなので注意。

これでイベントリストページに検索フォームが表示されます。

上記画面は項目にカスタム分類(音楽)を追加してます。追加方法はこちら

 

カテゴリで絞り込むリンクを作成する

javascriptを使ってpost情報を送信します。こちらがコード

<FORM NAME="form" METHOD="POST" ACTION="<?php echo home_url();?>/events">
<A HREF="javascript:document.form.submit()">リンク</A>
<input type="hidden" name="category" value="カテゴリID">
<input type="hidden" name="action" value="search_events">
</FORM>

「カテゴリID」には絞り込みたいカテゴリID値を指定してください。

<input type=”hidden” name=”action” value=”search_events”>
により検索ボタンを押した結果を表示させます。この一文がない場合条件が指定されたままで検索ボタンを押していない状態になります。

これでリンク先を開くと以下のようにカテゴリの初期値が指定され、絞り込んだ結果も表示されます。

ちなみに、カスタム分類の項目で絞り込みたい場合(上記の場合で言う「音楽」)は、

<FORM NAME="form" METHOD="POST" ACTION="<?php echo home_url();?>/events">
<A HREF="javascript:document.form.submit()">リンク</A>
<input type="hidden" name="music" value="タクソノミーID">
<input type="hidden" name="action" value="search_events">
</FORM>

こんな感じ。

プレースホルダーにする

下記のようにリスト上にリンクの付いたアイコン付けたりするのにプレースホルダー化したら便利なのでそうします。プレースホルダーの作り方はこちら

 

function.phpに下記を追加します。

function my_em_custom_placeholders($replace, $EM_Event, $result){
    switch( $result ){
        case '#_CUSTOMCATEGORIES':
            $replace = '';
            $event_id = $EM_Event->post_id;
            if( count($EM_Event->get_categories()->categories) > 0 ){
                foreach($EM_Event->get_categories() as $EM_Category){
                    $category_id = $EM_Category->output("#_CATEGORYID");
                    $link = "<FORM NAME='form_category". $event_id . $category_id ."' METHOD='POST' ACTION='" . home_url() . "/events' style='display:inline'>";
                    $link .= "<span class='event_icon_category'><A HREF='javascript:document.form_category". $event_id . $category_id .".submit()'>". $EM_Category->output("#_CATEGORYNAME") ."</A></span>";
                    $link .= "<input type='hidden' name='category' value='". $category_id ."'>";
                    $link .= "<input type='hidden' name='action' value='search_events'>";
                    $link .= "</FORM>";
                    $custom_categories[] = $link;
                }
                $replace = implode(' ', $custom_categories);
            }
            break;
        case '#_MUSIC':
            $replace = '';
            $musics = get_the_terms($EM_Event->post_id, 'music');
            $event_id = $EM_Event->post_id;
            if( is_array($musics) && count($musics) > 0 ){
                $musics_list = array();
                foreach($musics as $music){
                    $taxo_id = $music->term_taxonomy_id;
                    $link = "<FORM NAME='form_music". $event_id . $taxo_id ."' METHOD='POST' ACTION='" . home_url() . "/events' style='display:inline'>";
                    $link .= "<span class='event_icon_music'><A HREF='javascript:document.form_music". $event_id . $taxo_id .".submit()'>". $music->name ."</A></span>";
                    $link .= "<input type='hidden' name='music' value='". $taxo_id ."'>";
                    $link .= "<input type='hidden' name='action' value='search_events'>";
                    $link .= "</FORM>";
                    $musics_list[] = $link;
                }
                $replace = implode('', $musics_list);
            }
            break;
    }
    return $replace;
}
add_filter('em_event_output_placeholder','my_em_custom_placeholders',1,3);

 

これで完成。おわり。

その他Events Managerの記事
・「Events Manager」の検索フォームにイベント属性フィールドを追加する
・「Events Manager」の検索フォームにカスタム分類(カスタムタクソノミー)フィールドを追加する
・「Events Manager」でオリジナルのプレースホルダーを追加する
・「Events Manager」の絞り込み検索フォームのリストの順序を変更する方法
・「Events Manager」で現在開催中のイベントを示すプレースホルダーを作成する

 - WordPress

  • このエントリーをはてなブックマークに追加

  関連記事

wordpress情報
会員専用ページをつくる

会員専用ページをつくるにあたり、いろいろなプラグインがある。今回クライアントの要 …

wordpress情報
使用しているテンプレートファイル名を表示

WordPressのテーマを自分て作成しているとき現在表示されているのがどのテン …

wordpress情報
「Events Manager」でオリジナルのプレースホルダーを追加する

便利なイベントカレンダープラグイン「Events Manager」ですが、フォー …

wordpress情報
カスタム投稿をプラグインを使って実装し抽出する

WordPressでブログだけでなく通常のコーポレートサイトのようなページを作成 …

wordpress情報
ソースコードを投稿するプラグイン

ソースコードを投稿し綺麗に表示したい。でもCSSをつくるのは面倒。 でいろんな言 …

wordpress情報
管理画面(ダッシュボード)のメニューの表示/非表示を手動で操作する方法

Webサイト作成後、クライアントに引き渡すとき、管理画面から不要なメニューは表示 …

wordpress情報
ショートコードやタグを登録して簡単に呼び出す

WordPressの記事を登録するときショートコードやタグなど手で打つのはめんど …

wordpress情報
ログイン画面のロゴを変更

クライアントに納品するようなサイトはWordPressのログイン画面のロゴをオリ …

wordpress情報
「Events Manager」の絞り込み検索フォームのリストの順序を変更する方法

イベントカレンダープラグイン「Events Manager」について便利な絞り込 …

wordpress情報
「Events Manager」で現在開催中のイベントを示すプレースホルダーを作成する

以前に「Events Manager」でオリジナルのプレースホルダーを追加するに …