カスタム投稿タイプの件数指定
概要
カスタム投稿タイプの件数指定
施策
/*--------------------------------------------------------
// カスタム投稿タイプの件数指定
--------------------------------------------------------*/
function links_display_articles( $wp_query ) {
if (!is_admin()):
if ( $wp_query->is_main_query() && $wp_query->is_post_type_archive( 'news' ) ) {
$wp_query->set( 'posts_per_page', 20 ); // 1ページ当たり件数
}
endif;
}
add_action( 'pre_get_posts', 'links_display_articles' );
検索結果にカスタム投稿タイプも含める
概要
検索結果にカスタム投稿タイプも含める
施策
/*--------------------------------------------------------
検索結果にカスタム投稿タイプも含める
--------------------------------------------------------*/
function filter_search($query) {
if ( is_search() && !is_admin()):
if ($query->is_search) {
$query->set('post_type', array('post', 'page', 'news'));
};
endif;
return $query;
};
add_filter('pre_get_posts', 'filter_search');
特定の記事を検索結果から除外する
概要
特定の記事を検索結果から除外する
施策
/*--------------------------------------------------------
特定の記事を検索結果から除外する
--------------------------------------------------------*/
function fb_search_filter($query){
if ( is_search() && !is_admin()):
if ( !$query->is_admin && $query->is_search) {
$query->set('post__not_in', array(1328,1330,1375,1377) ); // 記事ID配列
}
endif;
return $query;
}
add_filter('pre_get_posts', 'fb_search_filter');
検索結果からショートコードを削除
概要
検索結果からショートコードを削除
施策
/*--------------------------------------------------------
// 検索結果からショートコードを削除
--------------------------------------------------------*/
function remove_shortcode_from_index( $content ) {
if ( is_search() && !is_admin()):
$content = preg_replace('/\[[^\]]+?\]/', '', $content, -1);
endif;
return $content;
}
add_filter('the_title', 'remove_shortcode_from_index');
add_filter('the_excerpt', 'remove_shortcode_from_index' );
カスタムクエリー
概要
カスタムクエリー
施策
/*--------------------------------------------------------
// カスタムクエリ一
--------------------------------------------------------*/
//追加したいカスタムクエリ一覧
function query_list(){
$arr = array(
'shop'
);
return $arr;
}
//クエリとして動作するようにする
function add_meta_query_vars( $public_query_vars ) {
foreach(query_list() as $val){
$public_query_vars[] = $val;
}
return $public_query_vars;
}
add_filter( 'query_vars', 'add_meta_query_vars' );
//上記追加したクエリが存在した時の記事抽出
function meta_search_query($query) {
if ( is_admin() || ! $query->is_main_query() ){
return;
}
foreach(query_list() as $val){
$query_val = $query->get($val);
if($query_val){
$query->set('meta_query',
array(
array(
'key' => $val,
'value' => $query_val
)
)
);
}
}
}
add_action( 'pre_get_posts', 'meta_search_query');
//カスタムクエリの有無で読み込まれるテンプレートを変更する
function custom_template($template){
global $wp_query;
foreach(query_list() as $val){
if($wp_query->get($val)){
$template = dirname( __FILE__ ) . '/archive-news.php';
}
}
return $template;
}
add_filter( 'home_template', 'custom_template' );