WordPressのfunction.phpで常用するコード⑨(その他編)
2016.07.21
カスタム投稿:RSS設定
function.php
function custom_post_rss_set( $query ) { if ( is_feed() ) { $post_type = $query->get( 'post_type' ); if ( empty( $post_type ) ) { $query->set( 'post_type', array('post', 'カスタム投稿01', 'カスタム投稿02', 'カスタム投稿03')); } return $query; } } add_filter( 'pre_get_posts', 'custom_post_rss_set' );
購読者はログイン後リダイレクト
function.php
add_action('wp_login', 'redirect_roll', 10, 2); function redirect_roll($user_login, $user) { if( $user->roles[0] != 'subscriber'){ wp_redirect( '/wp/wp-admin/' ); exit(); } else { wp_redirect( '/wp/' ); exit(); } }
ア-カイブ:ページネーション
function.php
function pagenation($pages = '', $range = 4){ $showitems = ($range * 2)+1; global $paged; if(empty($paged)) $paged = 1; if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages; if(!$pages){ $pages = 1; }} if(1 != $pages) { echo "<ul class=\"pagination clearfix\">"; if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><div><a href='".get_pagenum_link(1)."'>«</a></div></li>"; if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹</a>"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){ echo ($paged == $i)? "<li class=\"current\"><div>".$i."</div></li>":"<li><div><a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a></div></li>"; }} if ($paged < $pages && $showitems < $pages) echo "<li><div><a href=\"".get_pagenum_link($paged + 1)."\">›</a></div></li>"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<li><div><a href='".get_pagenum_link($pages)."'>»</a></div></li>"; echo "</ul>\n"; }}
表示用
<?php pagenation(); ?>
サイト内検索(検索対象:デフォルト投稿のみ)
function.php
function SearchFilter($query) { if ( !is_admin() && $query->is_main_query() && $query->is_search() ) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','SearchFilter');