// {{{ RSS 非公開記事の非表示
add_filter('request',function($query){
if(isset($query['feed']) && $query['feed'] === 'feed'){
$query['post_status'] = 'publish';
}
return $query;
});
// }}}
wordpressでURLに新規パラメータを追加 スマートフォンでページを分ける
例えばスマホページ等でページを分ける
パラメーターsmpがあったらスマホ用のsmp-single.phpを読み込む
// URLへのパラメーター追加を許可
add_action('init',function(){
add_rewrite_endpoint('smp', EP_PERMALINK);
//flush_rewrite_rules(); // DBの更新だが初回のみでよいのでコメントアウト
});
// スマホ用テンプレートの選択
add_action('template_redirect',function(){
if(!is_single()){return;}
$smp = get_query_var('smp', false);
if(!$smp){return;}
include(get_template_directory().'/smp-single.php');
exit;
});
// パラメーターの追加
add_filter('query_vars',function($vars){
$vars[] = 'smp';
return $vars;
});
// urlの場合はパラメーターが空になるのでtrueに上書き
add_filter( 'request',function($vars){
if ( isset( $vars['smp'] ) && '' === $vars['smp'] ) {
$vars['smp'] = 1;
}
return $vars;
});
WordPressでRSS2を全文表示にする
add_filter('option_rss_use_excerpt',function($v){return false;});
add_filter('the_excerpt_rss',function($output){return get_the_content_feed('rss2');});
wp_schedule_event に5分間隔のイベントを追加
add_filter('cron_schedules',function($schedules){
$schedules['five_minutes'] = array(
'interval' => 300,
'display' => __('Every 5 Minutes')
);
return $schedules;
});
wp_schedule_event(time(), 'five_minutes', 'your_cron_function');
WordPressでDBに書き込まずにURLを変更
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
WordPressでリモートアドレスの上書き
add_action('plugins_loaded',function(){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
});
実行箇所は要検討だが今のところ上記で問題ない。
