ワードプレス functions.php

公開日:2018-10-29
最終更新:2019-04-05

/* アドミンバー非表示 */

add_filter( 'show_admin_bar', '__return_false' );  

/* ログイン画面ロゴ変更 */

function my_custom_login_logo()  
{  
    echo '<style  type="text/css"> h1 a {  background-image:url('.get_bloginfo('template_directory').'/image/logo-login.png)  !important; } </style>';  
}  
add_action('login_head',  'my_custom_login_logo');  

/* ログイン画面CSS変更 */

function custom_login() {  
echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo('template_directory').'/login.css" />';  
}  

/* 管理画面上ロゴ・css変更 */

function my_custom_logo() {  
    echo '<style type="text/css">#header-logo { background-image:url('.get_bloginfo('template_directory').'/image/admin-logo-image.png) !important; }</style>';  
    global $post_type;  
    if($post_type == 'girls'){  
        echo '<style type="text/css">#icon-edit { background:url('.get_bloginfo('template_directory').'/image/girls_icon.png) ;background-repeat:no-repeat; }#postdivrich{display:none;}</style>';  
    }elseif($post_type == 'girls-diary'){  
        echo '<style type="text/css">#icon-edit { background:url('.get_bloginfo('template_directory').'/image/girls-diary_icon.png) ;background-repeat:no-repeat; }</style>';  
    }  
}  
add_action('admin_head', 'my_custom_logo');  

function wp_custom_admin_css() {  
                $current_user = wp_get_current_user();  
                $cuh = $current_user->roles;  
                if($cuh[0] == 'editor'){  

    echo "\n" . '<link rel="stylesheet" type="text/css" href="' .get_bloginfo('template_directory'). '/css/customAdmin.css' . '" />' . "\n";                }  

}  
add_action('admin_head', 'wp_custom_admin_css', 100);  

/* 管理画面フッター変更 */

function custom_admin_footer() {  
    echo 'お問い合わせは<a href="http://alitomo.com/">こちら</a>まで。';  
}  
add_filter('admin_footer_text', 'custom_admin_footer');  

/* 管理画面サイドバー非表示 */

function remove_menus () {  
                $current_user = wp_get_current_user();  
                $cuh = $current_user->roles;  
                if($cuh[0] == 'editor'){  

global $menu;  
     $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');  

/* メタボックス追加 */

function nskw_meta_box_inside() {  
    echo '<a href="';bloginfo('template_url');echo '/explain.pdf" target="_blank" >サイト管理者マニュアル</a>';  
}  

// メタボックスを追加する関数  
function nskw_meta_box_output() {  
    add_meta_box('nskw_meta_post_page', '説明書', 'nskw_meta_box_inside', 'post', 'side', 'high' );  
}  

// フックする  
add_action('admin_menu', 'nskw_meta_box_output' );  

/* カスタムポストタイプ設定 */

function works_postype() {  
    $labels = array(  
        'name' => '施工一覧',  
        'singular_name' => '施工一覧',  
        'add_new' => '新規追加',  
        'add_new_item' => '新規施工を追加',  
        'edit_item' => '施工を編集',  
        'not_found' =>  '登録された施工情報はありません',  
        'not_found_in_trash' => 'ゴミ箱に情報はありません。',  
        'parent_item_colon' => '',  
    );  
    $args = array(  
        'label' => __('works'),  
        'labels' => $labels,  
        'public' => true,  
        'hierarchical' => true,  
        'rewrite' => true,  
        'query_var' => true,  
        'menu_position' => 5,  
        'supports'=> array('title') ,  
        'has_archive' => 'works'  
    );  
    register_post_type( 'works', $args);  
}  
add_action( 'init', 'works_postype' );  

register_taxonomy(  
    'workscat',  
    'works',  
    array(  
        'label' => '施工カテゴリー',  
        'hierarchical' => true,  
        )  
);  

/* カスタム投稿一覧表示欄の項目のカスタマイズ */

function custom_columns($columns) {  
            $columns['girlscat'] = '出勤カテゴリー';  
            return $columns;  
            }  
add_filter( 'manage_girls_posts_columns', 'custom_columns' );  

function add_column($column_name,$post_id) {  
    if ($column_name == 'girlscat') {  
echo get_the_term_list($id, 'girlscat');  
    }  
}  
add_action( 'manage_posts_custom_column', 'add_column',10,2);  

アイキャッチのURL取得関数

function get_featured_image_url() {  
    $image_id = get_post_thumbnail_id();  
    $image_url = wp_get_attachment_image_src($image_id,'thumbnail', true);  
    echo $image_url[0];  
}  

/* アイキャッチ サイズ削除 */

add_filter( 'post_thumbnail_html', 'custom_attribute' );  
function custom_attribute( $html ){  
    // width height を削除する  
    $html = preg_replace('/(width|height)="\d*"\s/', '', $html);  
    return $html;  
}  

/* アイキャッチ */

add_theme_support( 'post-thumbnails');  
add_image_size( 'top_thumb', 150, 150, true );  

/カスタム投稿のアーカイブでの表示件数を指定する方法/

function change_posts_per_page($query) {  
    if ( is_admin() || ! $query->is_main_query() )  
        return;  
    if ( $query->is_archive('magazine') ) { //カスタム投稿タイプを指定  
        $query->set( 'posts_per_page', '20' ); //表示件数を指定  
    }  
}  
add_action( 'pre_get_posts', 'change_posts_per_page' );  

/カスタム投稿別アーカイブページ投稿数設定/

function change_posts_per_page($query) {  
    /* @var $query WP_Query */  
    if ( !is_admin() && $query->is_main_query()) {  
        if ( is_post_type_archive('knowledge') ) {  
            $query->set( 'posts_per_page' , 2 );//表示したい数  
        }  
    }  
    return $query;      
}  
add_action( 'pre_get_posts', 'change_posts_per_page' );  

今の記事は何番目? WordPressの記事に連番を出力する方法

// ループ回数を取得  
function get_loop_number(){  
    global $wp_query;  
    return $wp_query->current_post + 1;  
}  
echo get_loop_number(); ?> // => 1  

// 記事の詳細ページで投稿のいくつ目かを出力するにはデータベースから投稿タイプの指定をしてカウントを取得します。  
function get_post_number( $post_type = 'post', $op = '<=' ) {  
    global $wpdb, $post;  
    $post_type = is_array($post_type) ? implode("','", $post_type) : $post_type;  
    $number = $wpdb->get_var("  
        SELECT COUNT( * )  
        FROM $wpdb->posts  
        WHERE post_date {$op} '{$post->post_date}'  
        AND post_status = 'publish'  
        AND post_type = ('{$post_type}')  
    ");  
    return $number;  
}  

/* 最初・最後・偶数・奇数取得 */

function isFirst($myQuery){  
    return ($myQuery->current_post === 0);  
}  

function isLast($myQuery){  
    return ($myQuery->current_post+1 === $myQuery->post_count);  
}  

function isOdd($myQuery){  
    return ((($myQuery->current_post+1) % 2) === 1);  
}  

function isEvery($myQuery){  
    return ((($myQuery->current_post+1) % 2) === 0);  
}  

ページネーション

function my_pagenate($myquery){  
    global $wp_rewrite,$paged;  
    $paginate_base = get_pagenum_link(1);  
    if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {  
        $paginate_format = '';  
        $paginate_base = add_query_arg('paged', '%#%');  
    } else {  
        $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .  
        user_trailingslashit('page/%#%/', 'paged');;  
        $paginate_base .= '%_%';  
    }  
    echo paginate_links( array(  
        'base' => $paginate_base,  
        'format' => $paginate_format,  
        'total' => $myquery->max_num_pages,  
        'end_size' => 0,  
        'mid_size' => 1,  
        'prev_text' => '<img src="'. get_bloginfo('template_url') .'/images/prev.svg" alt="prev" />',  
        'next_text' => '<img src="'. get_bloginfo('template_url') .'/images/next.svg" alt="next" />',  
        'current' => ($paged ? $paged : 1)  
    ));  
}  

loginをemailに制限

function email_login( $user, $username, $password ) {  
  $user = get_user_by('email',$username);  
  if(!empty($user->user_login)) {  
    $username = $user->user_login;  
  } else {  
    $username = '';  
  }  
  return wp_authenticate_username_password( null, $username, $password );  
}  
add_filter('authenticate', 'email_login', 20, 3);  
記事が少しでもいいなと思ったらクラップを送ってみよう!
36
+1
@alitomoの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする