WPテンプレート
個人的によく使っているfunctions.phpの記述のメモです。
いろんなサイトから情報を得て作っているので、じわじわ改良を加えている。
後日もっと見やすく修正する。
<?php // CSS function add_files() { wp_enqueue_style( 'style', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'add_files' ); // JS if (!is_admin()) { // 管理画面以外のjQueryを解除 function deregister_script(){ wp_deregister_script('jquery'); } // 独自jQueryの出力設定 function register_script(){ wp_register_script('jquery', get_template_directory_uri() . '/js/jquery-3.5.1.min.js', false, '', true ); wp_register_script( 'js-picturefill', get_template_directory_uri() . '/js/picturefill.min.js', array( 'jquery' ), filemtime( get_template_directory() . '/js/picturefill.min.js' ), true); wp_register_script( 'js-common', get_template_directory_uri() . '/js/script.js', array( 'jquery' ), filemtime( get_template_directory() . '/js/script.js' ), true); } // 上で定義した内容の出力 function add_script() { deregister_script(); register_script(); wp_enqueue_script('jquery'); wp_enqueue_script('js-picturefill'); wp_enqueue_script('js-common'); //出力したいページの設定:例news //if ( is_post_type_archive( 'news' ) ) { // wp_enqueue_script('js-news'); //} } add_action('wp_enqueue_scripts', 'add_script'); } //不要なrel削除 //ショートリンク, wlwmanifest, application/rsd+xml, RSSフィードのURLの削除, 絵文字不使用, WPのバージョン情報を非表示 remove_action('wp_head', 'wp_shortlink_wp_head'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'print_emoji_detection_script', 7 ); remove_action('wp_print_styles', 'print_emoji_styles', 10 ); remove_action('wp_head','wp_generator'); // アイキャッチ add_theme_support('post-thumbnails'); set_post_thumbnail_size(1400,9999,true); add_image_size( 's-size', 700, 9999, true ); add_image_size( 'm-size', 1000, 9999, true ); add_image_size( 'l-size', 1400, 9999, true ); //管理画面表示切り替え function remove_menus() { remove_menu_page( 'index.php' ); // ダッシュボード remove_menu_page( 'edit.php' ); // 投稿 remove_menu_page( 'upload.php' ); // メディア remove_menu_page( 'edit.php?post_type=page' ); // 固定 remove_menu_page( 'edit-comments.php' ); // コメント remove_menu_page( 'themes.php' ); // 外観 remove_menu_page( 'plugins.php' ); // プラグイン remove_menu_page( 'users.php' ); // ユーザー remove_menu_page( 'tools.php' ); // ツール remove_menu_page( 'options-general.php' ); // 設定 } add_action( 'admin_menu', 'remove_menus' ); //カスタム投稿 function add_custom_post() { //カスタム投稿例:news register_post_type( 'news', array( 'labels' => [ 'name' => 'お知らせ', 'singular_name' => 'news', ], 'public' => true, 'publicly_queryable' => true, 'has_archive' => true, 'menu_position' => 5, 'supports' => array( 'title',// タイトル 'editor',// 内容の編集 'author',// 作成者 'thumbnail',// アイキャッチ画像 'excerpt',// 抜粋) 'trackbacks',// トラックバック送信 'custom-fields',// カスタムフィールド 'comments',// コメントの他、編集画面にコメント数のバルーンを表示する 'revisions',// リビジョンを保存する 'page-attributes',// メニューの順序 'post-formats',// 投稿のフォーマットを追加 ), 'menu_icon' => 'dashicons-edit' ) ); } add_action('init', 'add_custom_post'); //カスタムタクソノミー function add_taxonomy() { //タクソノミーカテゴリ register_taxonomy( 'tax-cat', 'tax', array( 'label' => 'タクソノミーカテゴリ', 'singular_label' => 'タクソノミーカテゴリ', 'labels' => array( 'all_items' => 'タクソノミーカテゴリ一覧', 'add_new_item' => 'タクソノミーカテゴリを追加' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'hierarchical' => true ) ); //タクソノミータグ register_taxonomy( 'tax-tag', 'tax', array( 'label' => 'タクソノミータグ', 'singular_label' => 'タクソノミータグ', 'labels' => array( 'all_items' => 'タクソノミータグ一覧', 'add_new_item' => 'タクソノミータグを追加' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'hierarchical' => true ) ); } add_action( 'init', 'add_taxonomy' ); //管理画面CSS function custom_admin_style() { ?><style> </style><?php } add_action( 'admin_head', 'custom_admin_style' ); // ページャー add_filter('redirect_canonical','my_disable_redirect_canonical'); function my_disable_redirect_canonical( $redirect_url ) { if ( is_archive() ){ $subject = $redirect_url; $pattern = '/\/page\//'; preg_match($pattern, $subject, $matches); if ($matches){ $redirect_url = false; return $redirect_url; } } } // OGP設定 function my_meta_ogp() { if( is_front_page() || is_home() || is_singular() ){ global $post; $ogp_title = ''; $ogp_descr = ''; $ogp_url = ''; $ogp_img = ''; $insert = ''; if( is_singular() ) { setup_postdata($post); $ogp_title = $post->post_title; $ogp_descr = mb_substr(get_the_excerpt(), 0, 100); $ogp_url = get_permalink(); wp_reset_postdata(); } elseif ( is_front_page() || is_home() ) { $ogp_title = get_bloginfo('name'); $ogp_descr = get_bloginfo('description'); $ogp_url = home_url(); } $ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article'; if ( is_singular() && has_post_thumbnail() ) { $ps_thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full'); $ogp_img = $ps_thumb[0]; } else { $ogp_img = '画像URL'; } $insert .= '<meta property="og:title" content="'.esc_attr($ogp_title).'" />' . "\n"; $insert .= '<meta property="og:description" content="'.esc_attr($ogp_descr).'" />' . "\n"; $insert .= '<meta property="og:type" content="'.$ogp_type.'" />' . "\n"; $insert .= '<meta property="og:url" content="'.esc_url($ogp_url).'" />' . "\n"; $insert .= '<meta property="og:image" content="'.esc_url($ogp_img).'" />' . "\n"; $insert .= '<meta property="og:site_name" content="'.esc_attr(get_bloginfo('name')).'" />' . "\n"; $insert .= '<meta name="twitter:card" content="summary_large_image" />' . "\n"; $insert .= '<meta name="twitter:site" content="" />' . "\n"; $insert .= '<meta property="og:locale" content="ja_JP" />' . "\n"; echo $insert; } } add_action('wp_head','my_meta_ogp'); ?>