WordPressプラグイン「All-in-One Event Calendar」
このプラグインを使えば、簡単にサイト上に独自のカレンダーを設置することができます。
ただ、このプラグインには癖があって、若干カスタマイズをしていかないと上手く使いこなせません。
今日はその中でも一つのカスタマイズ方法を紹介。
イベントが検索結果に表示されない
「All-in-One Event Calendar」で投稿されたイベントは通常の投稿タイプとは異なる「カスタム投稿タイプ」で記録されます。
そのため、通常の投稿とは扱いが異なります。
イベント内容を検索結果に表示させたい場合、
「外観」→「テーマの編集」→「functions.php」の一番下に次のようなコードを追記する必要があります。
<span class="hljs-comment">//All-in-One Event Calendarプラグインのカスタム投稿タイプもメインページにリストする</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_search_filter</span><span class="hljs-params">($query)</span> </span>{ <span class="hljs-keyword">if</span> (<span style="color: #ff0000;">is_search()</span> && $query->is_main_query() ) { $query->set( <span class="hljs-string">'post_type'</span>, <span class="hljs-keyword">array</span>( <span class="hljs-string">'post'</span>, <span class="hljs-string">'page'</span>, <span class="hljs-string">'ai1ec_event'</span> ) ); } } add_action( <span class="hljs-string">'pre_get_posts'</span>, <span class="hljs-string">'my_search_filter'</span> );
このコードを追加することで「is_search()」、検索結果にイベント内容が表示されるようになります。
また、赤字にした変数を変更することで、別の場所でも表示が可能です。
たとえばトップページで表示させたい場合、「is_search()」を「is_home()」に置き換えればOKです。
他の条件分布タグ
条件分布タグは他にもたくさんありますので、以下をご参照ください。
条件分岐タグ:
is_404(), is_admin(), is_admin_bar_showing(), is_archive(), is_attachment(), is_author(), is_category(), is_comments_popup(),is_date(), is_day(), is_feed(), is_front_page(), is_home(), is_local_attachment(), is_main_query, /is_multi_author, is_month(), is_new_day(),is_page(), is_page_template(), is_paged(), is_plugin_active(), is_plugin_active_for_network() /en, is_plugin_inactive() /en, is_plugin_page() /en,is_post_type_archive(), is_preview() /en, is_search(), is_single(), is_singular(), is_sticky(), is_tag(), is_tax(), is_taxonomy_hierarchical(), is_time(),is_trackback(), is_year(), in_category(), in_the_loop(), is_active_sidebar(), is_active_widget(), is_blog_installed() /en, is_rtl(), is_dynamic_sidebar(),is_user_logged_in(), has_excerpt(), has_post_thumbnail(), has_tag(), pings_open(), email_exists(), post_type_exists(), taxonomy_exists(),term_exists(), username_exists() /en, wp_attachment_is_image(), wp_script_is()
いかがでしょうか。
少しだけ応用編ではありますが、ご紹介でした。