gooodmark

goodなWebサイトを厳選ブックマーク!デザインやディレクションの参考にどうぞ。

724bookmark

WordPressのfunction.phpで常用するコード⑨(その他編)

カスタム投稿: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)."'>&laquo;</a></div></li>";
if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</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)."">&rsaquo;</a></div></li>";
if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<li><div><a href='".get_pagenum_link($pages)."'>&raquo;</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');