function getCurl($url,array $opt = []){ $defaults = [ CURLOPT_URL => $url, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_TIMEOUT => 5 ]; $ch = curl_init(); curl_setopt_array($ch, ($opt + $defaults)); if(!$result = curl_exec($ch)){ error_log('Curl error: '.curl_error($ch).' url: '.$url); } curl_close($ch); return $result; } echo getCurl('https://wp.wkbr.net');
wordpress 現在のURL取得
$uri = explode('?',$_SERVER['REQUEST_URI'])[0]; $url = home_url($uri);
WordPressで非公開記事がRSSに載らないようにする
// {{{ 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; });
PHPでOGPを取得する
function getOGP($file,$ogps = ['title','description','image']){ $html = @file_get_contents($file); if(!$html){ return false; } $html = mb_convert_encoding($html, 'HTML-ENTITIES','ASCII,JIS,UTF-8,EUC-JP,SJIS'); $dom = new DOMDocument(); $err = @$dom->loadHTML($html); if(!$err){ return false; } $return = (object)[]; $metas = $dom->getElementsByTagName('meta'); foreach($metas as $m){ $prop = str_replace('og:','',$m->getAttribute('property')); if(in_array($prop,$ogps)){ $return->$prop = $m->getAttribute('content'); } } return $return; } $ogp = getOGP('https://www.google.co.jp/');
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]; } });
実行箇所は要検討だが今のところ上記で問題ない。
PHPで拡張子を取得する
$str = 'filename.txt'; $ext = substr($str,strrpos($str,'.')+1);