★いつも最新ファンクション整理
2015年11月9日 / functions.php
<?php
/*
テーマtake7シリーズでは、20151111時点で
★★10項目
★21要素のファンクション追加があります。
*/
?>
<?php
/*01★★子テーマを利用できるようにしておく★★*/
//★01子テーマを利用する
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
wp_enqueue_style( ‘child-style’,
get_stylesheet_directory_uri() . ‘/style.css’,
array(‘parent-style’)
);
}
/*02★★表示画面関係★★*/
//★02ヘッダー画像を簡易に指定出来る「カスタムヘッダー」そして★header.phpに「もしもあれだったら」を記述して任意の画像を指定する
$defaults = array(
‘default-image’ => get_bloginfo(‘template_url’).’/img/ ’,
‘random-default’ => false,
‘width’ => 980,
‘height’ => 140,
‘flex-height’ => false,
‘flex-width’ => false,
‘default-text-color’ => ”,
‘header-text’ => true,
‘uploads’ => true,
‘wp-head-callback’ => ”,
‘admin-head-callback’ => ”,
‘admin-preview-callback’ => ”,
);
add_theme_support( ‘custom-header’ );
//★03抜粋文の文字数とコメント指定
function new_excerpt_mblength($length) {
return 200;
}
add_filter(‘excerpt_mblength’, ‘new_excerpt_mblength’);
function new_excerpt_more($more) {
return ‘<a href=”‘. get_permalink($post->ID) . ‘”>’ . ‘[<i class=”fa fa-hand-o-right”> </i>・・続きを読む]’ . ‘</a>’;
}
add_filter(‘excerpt_more’, ‘new_excerpt_more’);
//★04未分類カテゴリーを非表示に
function my_theme_catexcept($cat_args){
$exclude_id = ‘1,13’; // 除外するカテゴリID
$cat_args[‘exclude’] = $exclude_id; // 除外
return $cat_args;
}
//★05検索フォームの構成
function my_search_form( $form ) {
$form = ‘<form role=”search” method=”get” id=”searchform” action=”‘.home_url( ‘/’ ).'” >
<input type=”text” value=”‘ . get_search_query() . ‘” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=” サイト内検索” />
</form>’;
return $form;
}
add_filter( ‘get_search_form’, ‘my_search_form’ );
/*03★★ログイン・ログアウト画面関係★★*/
//★06ログインロゴを指定・テーマのイメージフォルダ内にlogo-login.を格納
function custom_login_logo() {
echo ‘<style type=”text/css”>h1 a { background: url(‘.get_bloginfo(‘template_directory’).’/images/logo_login.gif) 50% 50% no-repeat !important; }</style>’;
}
add_action(‘login_head’, ‘custom_login_logo’);
//★07ログインロゴのリンク先指定
function my_login_logo_url() {
return home_url();
}
add_filter( ‘login_headerurl’, ‘my_login_logo_url’ );
function my_login_logo_url_title() {
return ‘只今、上平間第二町会の試作サイトで利用中です。’;
}
add_filter( ‘login_headertitle’, ‘my_login_logo_url_title’ );
/*04★★管理画面内表示関係★★*/
//★08管理画面フッターWordPressを変更する
function custom_admin_footer() {
echo ‘<a href=”mailto:”>管理画面にようこそ take7 it easy</a>’;
}
add_filter(‘admin_footer_text’, ‘custom_admin_footer’);
//★09管理画面記事一覧にスラグを表示
function add_page_columns_name($columns) {
$columns[‘slug’] = “スラッグ”;
return $columns;
}
function add_page_column($column_name, $post_id) {
if( $column_name == ‘slug’ ) {
$post = get_post($post_id);
$slug = $post->post_name;
echo esc_attr($slug);
}
}
add_filter( ‘manage_pages_columns’, ‘add_page_columns_name’);
add_action( ‘manage_pages_custom_column’, ‘add_page_column’, 10, 2);
//★10アイキャッチ画像操作を編集画面に表示
add_theme_support(‘post-thumbnails’);
//★11管理画面のツールバー「コメント」非表示に
function remove_admin_bar_menus( ) {
global $wp_admin_bar;
$wp_admin_bar -> remove_menu( ‘updates’ );
$wp_admin_bar -> remove_menu( ‘comments’ );
$wp_admin_bar -> remove_menu( ‘customize’ );
$wp_admin_bar -> remove_menu( ‘edit’ );
}
add_action( ‘wp_before_admin_bar_render’, ‘remove_admin_bar_menus’ );
/*05★★管理画面内ウィジェット関係★★*/
//★12ウェイジェットのデフォルトサイドバーに名前を入れる
if ( function_exists(‘register_sidebar’) ) {
register_sidebar(array(
‘name’ => ‘左サイド・デフォルト’,
‘before_widget’ => ‘<div id=”%1$s” class=”widget %2$s”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3 class=”widgettitle”>’,
‘after_title’ => ‘</h3>’,
));
}
add_theme_support( ‘menus’ );
remove_action(‘wp_head’, ‘wp_generator’);
/*06★★管理画面内メニュー関係★★*/
//★13カスタムメニューの定義
register_nav_menus ( array (
‘gnavi’ => ‘グローバルメニュー’,
‘gnav’ => ‘サブメニュー’,
‘gna’ => ‘グ左・メニュー’,
‘gn’ => ‘グ右・メニュー’,
));
/*07★★管理権限管理メニュー関係★★*/
//★14編集者権限の編集メニューの一部を非表示に
function remove_menus () {
if (!current_user_can(‘level_10’)) { //level10以下のユーザーの場合メニューをunsetする
remove_menu_page(‘wpcf7’); //Contact Form 7
remove_menu_page(‘edit.php?post_type=take7’); //カスタム投稿ページ
global $menu;
unset($menu[25]); // コメント
unset($menu[75]); // ツール
global $submenu;
unset($submenu[‘edit.php’][15]);//カテゴリ
unset($submenu[‘edit.php’][16]);//タグ
}
}
add_action(‘admin_menu’, ‘remove_menus’);
//★15管理者あるいは編集者権限の編集メニューの一部をユーザーIDを利用して非表示に
function remove_menus () {
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user -> user_login == ‘Nori’) {
$restricted = array(
__(‘メディア’),
__(‘リンク’)
);
end ($menu);
while (prev($menu)){
$value = explode(‘ ‘,$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:”” , $restricted)){
unset($menu[key($menu)]);
}
}
}
}
add_action(‘admin_menu’, ‘remove_menus’);
/*08★★編集画面・ビジュアルエディット関係★★*/
//★16エディタ・スタイルシートを有効に
add_editor_style(‘editor-style.css’);
//★17管理画面の編集入力欄の高さ拡大
function my_admin_print_styles() {
?>
<style>
#content{ height:560px!important;height:40rem!important; }
</style>
<?php
}
add_action( ‘admin_print_styles’, ‘my_admin_print_styles’ );
//★18ビジュアル プルダウンメニューのh1h2h3非表示に
function custom_editor_settings( $initArray ){
// WordPress3くらい
//$initArray[‘theme_advanced_blockformats’] = ‘p,address,pre,code,h4,h5,h6’;
// WordPress4から
$initArray[‘block_formats’] = “見出し4=h4; 見出し5=h5; 見出し6=h6; 段落=p; pre=pre;”;
return $initArray;
}
add_filter( ‘tiny_mce_before_init’, ‘custom_editor_settings’ );
/*09★★ショートコード設置関係★★*/
//★19記事内/固定ページ内に任意phpファイルを読み込ませるショートコードたとえば
function Include_my_php($params = array()) {
extract(shortcode_atts(array(
‘file’ => ‘default’
), $params));
ob_start();
include(get_theme_root() . ‘/’ . get_template() . “/$file.php”);
return ob_get_clean();
}
add_shortcode(‘myphp’, ‘Include_my_php’);
add_editor_style(‘editor-style.css’);
//★20記事内/固定ページ内にカスタムメニューをショートコードで
function single_page_custom_menu($atts, $content = null) {
extract(shortcode_atts(array(
‘menu’ => ”,
‘container’ => ‘div’,
‘container_class’ => ”,
‘container_id’ => ”,
‘menu_class’ => ‘menu’,
‘menu_id’ => ”,
‘echo’ => true,
‘fallback_cb’ => ‘wp_page_menu’,
‘before’ => ”,
‘after’ => ”,
‘link_before’ => ”,
‘link_after’ => ”,
‘depth’ => 0,
‘walker’ => ”,
‘theme_location’ => ”),
$atts));
return wp_nav_menu( array(
‘menu’ => $menu,
‘container’ => $container,
‘container_class’ => $container_class,
‘container_id’ => $container_id,
‘menu_class’ => $menu_class,
‘menu_id’ => $menu_id,
‘echo’ => false,
‘fallback_cb’ => $fallback_cb,
‘before’ => $before,
‘after’ => $after,
‘link_before’ => $link_before,
‘link_after’ => $link_after,
‘depth’ => $depth,
‘walker’ => $walker,
‘theme_location’ => $theme_location));
}
add_shortcode(“cmenu”, “single_page_custom_menu”);
/*10★★その他の要素★★*/
//★21Dashiconsを使用できる状態にする
add_action( ‘wp_enqueue_scripts’, ‘load_dashicons’ );
function load_dashicons() {
wp_enqueue_style( ‘dashicons’ );
}
?>