テーマのための関数(functions.php)
なかなかに豪華です!
というか、多すぎます!
少し迷う部分もあって・・・。
もう少し時間がかかりそう・・・。
<?php //アイキャッチ・メニュー・RSS出力を有効化 add_theme_support('post-thumbnails'); add_theme_support('automatic-feed-links'); //エディタスタイル add_theme_support('editor-style'); add_editor_style('editor-style.css'); function custom_editor_settings( $initArray ){ $initArray['body_class'] = 'editor-area'; return $initArray; } add_filter( 'tiny_mce_before_init', 'custom_editor_settings' ); //セルフピンバック禁止 function no_self_ping( &$links ) { $home = home_url(); foreach ( $links as $l => $link ) if ( 0 === strpos( $link, $home ) ) unset($links[$l]); } add_action( 'pre_ping', 'no_self_ping' ); //更新日の追加 function get_mtime($format) { $mtime = get_the_modified_time('Ymd'); $ptime = get_the_time('Ymd'); if ($ptime > $mtime) { return get_the_time($format); } elseif ($ptime === $mtime) { return null; } else { return get_the_modified_time($format); } } //ヘッダー整理 remove_action( 'wp_head', 'feed_links_extra', 3 ); remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); remove_action( 'wp_head', 'wp_generator' ); //H2見出しを判別する正規表現を定数にする define('H2_REG', '/<h2.*?>/i');//H2見出しのパターン //本文中にH2見出しが最初に含まれている箇所を返す(含まれない場合はnullを返す) //H3-H6しか使っていない場合は、h2部分を変更してください function get_h2_included_in_body( $the_content ){ if ( preg_match( H2_REG, $the_content, $h2results )) {//H2見出しが本文中にあるかどうか return $h2results[0]; } } function add_ads_before_1st_h2($the_content) { if ( is_singular() ) {//固定ページも表示するのでis_single()から変更 ob_start();//バッファリング get_template_part('ad-in-body');//広告貼り付け用に作成したテンプレート $ad_template = ob_get_clean(); $h2result = get_h2_included_in_body( $the_content );//本文にH2タグが含まれていれば取得 if ( $h2result ) {//H2見出しが本文中にある場合のみ //最初のH2の手前に広告を挿入(最初のH2を置換) $count = 1; $the_content = preg_replace(H2_REG, $ad_template.$h2result, $the_content, 1); } } return $the_content; } add_filter('the_content','add_ads_before_1st_h2'); //記事内に特定のカテゴリの新着記事一覧を出力するショートコード //order=DESCを、order=ASCに変えて昇順 function getCatItems($atts, $content = null) { extract(shortcode_atts(array( "num" => '5', "cat" => '' ), $atts)); global $post; $oldpost = $post; $myposts = get_posts('numberposts='.$num.'&order=ASC&orderby=post_date&category='.$cat); $retHtml='<ul>'; foreach($myposts as $post) : setup_postdata($post); $retHtml.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>'; endforeach; $retHtml.='</ul>'; $post = $oldpost; return $retHtml; } add_shortcode("list", "getCatItems"); //記事内に特定のカテゴリの新着記事一覧をolで出力するショートコード //order=DESCを、order=ASCに変えて昇順 function getCatItems_ol($atts, $content = null) { extract(shortcode_atts(array( "num" => '5', "cat" => '' ), $atts)); global $post; $oldpost = $post; $myposts = get_posts('numberposts='.$num.'&order=ASC&orderby=post_date&category='.$cat); $retHtml='<ol>'; foreach($myposts as $post) : setup_postdata($post); $retHtml.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>'; endforeach; $retHtml.='</ol>'; $post = $oldpost; return $retHtml; } add_shortcode("list_ol", "getCatItems_ol"); // 投稿者アーカイブ非表示リダイレクト function author_archive_redirect() { if( is_author() ) { wp_redirect( home_url()); exit;} } add_action( 'template_redirect', 'author_archive_redirect' ); ?>
さあて、どうしたものか・・・。
スポンサーリンク
コメントを残す