php WordPress的-的functions.php

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WordPress的-的functions.php相关的知识,希望对你有一定的参考价值。

<?php

/*
---------------------------------------------------------*/
function load_css_js() {
    $dir      = get_template_directory_uri();
    $bowerDir = $dir . '/components/bower_components';

    wp_enqueue_style( 'style', $dir . '/css/style.min.css', array(), false );

    wp_enqueue_script( 'html5shiv', $bowerDir .( '/html5shiv/dist/html5shiv.min.js' ), array(), false, true );
    wp_script_add_data( 'html5shiv', 'conditional', 'lt IE 9' );

    wp_enqueue_script( 'respond', $bowerDir .( '/respond/dest/respond.min.js' ), array(), false, true );
    wp_script_add_data( 'respond', 'conditional', 'lt IE 9' );

    // wp_enqueue_script('jquery', $bowerDir . '/jquery/dist/jquery.min.js', array(), false, true);
    wp_enqueue_script( 'jquery-easing', $bowerDir . '/jquery.easing/js/jquery.easing.min.js', array( 'jquery' ), false, true );
    wp_enqueue_script( 'bootstrap', $bowerDir . '/bootstrap-sass/assets/javascripts/bootstrap.min.js', array( 'jquery' ), false, true );
    wp_enqueue_script( 'jquery-matchHeight', $bowerDir . '/matchHeight/dist/jquery.matchHeight-min.js', array( 'jquery' ), false, true );
    wp_enqueue_script( 'main', $dir . '/js/main.js', array( 'jquery' ), false, true );
}

add_action( 'wp_enqueue_scripts', 'load_css_js' );

/*
---------------------------------------------------------*/
function update_version_query_string( $url ) {
    $version = 1;

    $url = remove_query_arg( 'ver', $url );
    $url = add_query_arg( 'ver', $version, $url );

    return esc_url( $url );
}

add_filter( 'style_loader_src', 'update_version_query_string', 1 );
add_filter( 'script_loader_src', 'update_version_query_string', 1 );

/*
---------------------------------------------------------*/
function disable_emojis() {
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );

    remove_action( 'wp_head', 'wp_generator' );
    remove_action( 'wp_head', 'rsd_link' );
    remove_action( 'wp_head', 'wlwmanifest_link' );
}

add_action( 'init', 'disable_emojis' );


/* ビジュアルエディタ用CSS
---------------------------------------------------------*/
add_editor_style( 'css/style.min.css' );

function custom_editor_settings( $initArray ) {
    $initArray['body_class'] = 'editor-area';

    return $initArray;
}

add_filter( 'tiny_mce_before_init', 'custom_editor_settings' );

/*
---------------------------------------------------------*/
function title_tag_switcher( $bool = false, $str = '', $trueStartTag = '', $trueEndTag = '', $falseStartTag = '', $falseEndTag = '' ) {
    if ( $bool ) {
        return $trueStartTag . $str . $trueEndTag;
    } else {
        return $falseStartTag . $str . $falseEndTag;
    }
}

/*
---------------------------------------------------------*/
function img_tag_switcher( $bool = false, $trueImg = '', $falseImg = '' ) {
    if ( $bool ) {
        return $trueImg;
    } else {
        return $falseImg;
    }
}

/*
---------------------------------------------------------*/
function change_post_menu_label() {
    global $menu;
    global $submenu;

    $menu[5][0]                 = '★★★投稿';
    $submenu['edit.php'][5][0]  = '★★★投稿一覧';
    $submenu['edit.php'][10][0] = '新しい★★★投稿';
    // $submenu['edit.php'][16][0] = 'タグ';
}

function change_post_object_label() {
    global $wp_post_types;

    $labels                = &$wp_post_types['post']->labels;
    $labels->name          = '★★★投稿';
    $labels->singular_name = '★★★投稿';
    $labels->add_new       = _x( '追加', 'ニュース' );
    $labels->add_new_item  = '★★★投稿の新規追加';
    $labels->edit_item     = '★★★投稿の編集';
    $labels->new_item      = '新規★★★投稿';
    $labels->view_item     = '★★★投稿を表示';
    $labels->search_items  = '★★★投稿を検索';
    // $labels->not_found          = '記事が見つかりませんでした';
    // $labels->not_found_in_trash = 'ゴミ箱に記事は見つかりませんでした';
}

// add_action( 'init', 'change_post_object_label' );
// add_action( 'admin_menu', 'change_post_menu_label' );

/*
* Ref: https://codex.wordpress.org/Conditional_Tags
---------------------------------------------------------*/
function change_main_query( $query ) {
    if ( is_admin() || ! $query->is_main_query() ) {
        return;
    }

    // Posts page
    if ( $query->is_home() ) {
        $query->set( 'posts_per_page', 9 );
    }

    // if ($query->is_post_type_archive('xxx')) {
    //     $query->set('posts_per_page', 15);
    // }
    
    // is_singular( 'xxx' )
}

// add_action('pre_get_posts', 'change_main_query');

/*
---------------------------------------------------------*/
function tinymce_config( $init ) {
    $init['forced_root_block'] = '<br>';

    return $init;
}

// add_filter('tiny_mce_before_init', 'tinymce_config');

/*
---------------------------------------------------------*/
// WordPress 4.4 over
function change_document_title_parts( $title_parts ) {
    $separator   = '';
    $description = get_bloginfo( 'description' );

    // if (is_home() || is_front_page()) {
    //     $title_parts['title'] = '';
    // }

    $title_parts['tagline'] = '';

    if ( $description ) {
        $separator = ' - ';
    }

    $title_parts['site'] = get_bloginfo( 'name' ) . $separator . $description;

    return $title_parts;
}

// add_filter( 'document_title_parts', 'change_document_title_parts' );

/* Hide items on header Admin bar
---------------------------------------------------------*/
function remove_bar_menus( $wp_admin_bar ) {
    // $wp_admin_bar->remove_menu('wp-logo');      // ロゴ
    // $wp_admin_bar->remove_menu('site-name');    // サイト名
    // $wp_admin_bar->remove_menu('view-site');    // サイト名 -> サイトを表示
    // $wp_admin_bar->remove_menu('dashboard');    // サイト名 -> ダッシュボード (公開側)
    // $wp_admin_bar->remove_menu('themes');       // サイト名 -> テーマ (公開側)
    // $wp_admin_bar->remove_menu('customize');    // サイト名 -> カスタマイズ (公開側)
    // $wp_admin_bar->remove_menu('comments');     // コメント
    // $wp_admin_bar->remove_menu('updates');      // 更新
    // $wp_admin_bar->remove_menu('view');         // 投稿を表示
    // $wp_admin_bar->remove_menu('new-content');  // 新規
    // $wp_admin_bar->remove_menu('new-post');     // 新規 -> 投稿
    // $wp_admin_bar->remove_menu('new-media');    // 新規 -> メディア
    // $wp_admin_bar->remove_menu('new-link');     // 新規 -> リンク
    // $wp_admin_bar->remove_menu('new-page');     // 新規 -> 固定ページ
    // $wp_admin_bar->remove_menu('new-user');     // 新規 -> ユーザー
    // $wp_admin_bar->remove_menu('my-account');   // マイアカウント
    // $wp_admin_bar->remove_menu('user-info');    // マイアカウント -> プロフィール
    // $wp_admin_bar->remove_menu('edit-profile'); // マイアカウント -> プロフィール編集
    // $wp_admin_bar->remove_menu('logout');       // マイアカウント -> ログアウト
    // $wp_admin_bar->remove_menu('search');       // 検索 (公開側)
}

// add_action('admin_bar_menu', 'remove_bar_menus', 201);

/* Hide items on Admin left sidebar
---------------------------------------------------------*/
function remove_menus() {
    // remove_menu_page('index.php'); // ダッシュボード
    // remove_menu_page('edit.php'); // 投稿
    // remove_menu_page('upload.php'); // メディア
    remove_menu_page( 'edit-comments.php' ); // コメント
    // remove_menu_page('profile.php'); // プロフィール
    // remove_menu_page('tools.php'); // ツール
}

// add_action('admin_menu', 'remove_menus');

/*
 * Disable auto html format by TinyMCE
---------------------------------------------------------*/
add_filter( 'tiny_mce_before_init', function ( $init ) {
    $init['wpautop']                 = false;
    $init['apply_source_formatting'] = true;

    return $init;
} );

/*
---------------------------------------------------------*/
// remove_filter( 'the_content', 'wpautop' );

/*
 *
---------------------------------------------------------*/
function my_excerpt_length( $length ) {
    return 80;
}

// add_filter( 'excerpt_length', 'my_excerpt_length' );

/*
 *
---------------------------------------------------------*/
function getLabelClass( $catName ) {
    switch ( $catName ) {
        case 'RECRUIT':
            return 'label-cyan';
            break;
        case 'MEDIA':
            return 'label-green';
            break;
        default:
            return 'label-orange';
    }
}

/*
---------------------------------------------------------*/
function setup() {
    add_theme_support( 'title-tag' );
    add_theme_support( 'post-thumbnails' );

    // if (function_exists('add_image_size')) {
    //     add_image_size('thumb-290x185', 290, 580, true);
    // }
}

add_action( 'after_setup_theme', 'setup' );

/*
---------------------------------------------------------*/
function remove_type_attr( $tag ) {
    return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
}

add_filter( 'script_loader_tag', 'remove_type_attr' );
add_filter( 'style_loader_tag', 'remove_type_attr' );

/*
https://qiita.com/gatespace/items/199c9995e47d668e0fb0
add any column on "admin posts list page"
---------------------------------------------------------*/
function add_columns( $columns ) {
    $new_columns = array();

    foreach ( $columns as $column_name => $column_display_name ) {
        if ( $column_name == 'date' ) {
            $new_columns['category'] = __( 'カテゴリ' );
        }

        $new_columns[ $column_name ] = $column_display_name;
    }

    return $new_columns;
}

// add_filter( 'manage_product_posts_columns' , 'add_columns' );

/*
---------------------------------------------------------*/
function add_columns_value( $column, $post_id ) {

    $terms = wp_get_post_terms( $post_id, 'product-category' );

    if ( $terms && ! is_wp_error( $terms ) ) :

        $vals = array();

        foreach ( $terms as $term ) {
            $vals[] = $term->name;
        }

        $nameList = join( ",<br> ", $vals );
    endif;

    switch ( $column ) {
        case 'category' :
            echo $nameList;

            break;
    }
}

// add_action( 'manage_product_posts_custom_column' , 'add_columns_value', 10, 2 );

/* For debug
 * display template file name
---------------------------------------------------------*/
function show_template() {
    global $template;
    echo basename( $template );
}

// add_action( 'wp_head', 'show_template' );

以上是关于php WordPress的-的functions.php的主要内容,如果未能解决你的问题,请参考以下文章

php 【WordPress的】的functions.php

php WordPress的-的functions.php

在 functions.php (WordPress) 中包含 ACF

php [WORDPRESS] - 脚注中的Wordpress动态版权日期#wp #footer #wordpress#functions.php

php WordPress:functions.php的空白插件模板

php WordPress:functions.php的空白插件模板