// {{{ 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]; } });
実行箇所は要検討だが今のところ上記で問題ない。