jugedred
11/17/2017 - 1:34 PM

functions.php ひな形

<?php
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 256, 256, true);
//add_image_size( 'thumbnail', 256, 256, true);

/**
* 固定ページのみ自動整形機能を無効化します。
*/
function disable_page_wpautop() {
  if (   is_page() ) remove_filter( 'the_content', 'wpautop' );
}
add_action( 'wp', 'disable_page_wpautop' );

// ショートコード定義
// テンプレートフォルダ [tmplurl]
function shortcode_templateurl() {
  return get_template_directory_uri();
}
add_shortcode('tmplurl',shortcode_templateurl);

// サイトのトップページ [homeurl]
function shortcode_homeurl() {
  return get_home_url();
}
add_shortcode('homeurl',shortcode_homeurl);

// パンくずリストの表示(ショートコード)
function shortcode_breadcrumb() {
  return bcn_display(true);
}
add_shortcode('breadcrumb', 'shortcode_breadcrumb');

// pre_get_posts
function custom_pre_get_posts($query) {
  if ( is_admin() || ! $query->is_main_query() )
    return;
  if ( $query->is_category() ) {
    // カテゴリー
    $query->set( 'posts_per_page', '5' );
  } elseif ($query->is_search()) {
    $query->set( 'posts_per_page', '5' );
  }
}
add_action( 'pre_get_posts', 'custom_pre_get_posts' );

// body_class()に固定ページのスラッグを追加
// 参考 http://terabenote.net/archives/2079/
function pagename_class($classes = '') {
  if (is_page()) {
    $page = get_page(get_the_ID());
    $classes[] = 'page-' . $page->post_name;
    if ($page->post_parent) {
        $classes[] = 'page-' . get_page_uri($page->post_parent) . '-child';
    }
  }
  return $classes;
}
add_filter('body_class', 'pagename_class');

// レスポンシブイメージ削除
add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );

// CF7 メアド確認用
add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
    $type = $tag['type'];
    $name = $tag['name'];
    $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
    if ( 'email' == $type || 'email*' == $type ) {
        if (preg_match('/(.*)_confirm$/', $name, $matches)){
            $target_name = $matches[1];
            if ($_POST[$name] != $_POST[$target_name]) {
                if (method_exists($result, 'invalidate')) {
                    $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
                } else {
                    $result['valid'] = false;
                    $result['reason'][$name] = '確認用のメールアドレスが一致していません';
                }
            }
        }
    }
    return $result;
}

// JS・CSSファイルを読み込む
function add_files() {

  // jQueryの読み込み
  wp_enqueue_script( 'jquery' );

  // サイト共通JS
  wp_enqueue_script( 'main', get_template_directory_uri() . '/js/main.js', array('jquery'), '20170228', true );
  wp_enqueue_script( 'slick', get_template_directory_uri() . '/js/slick.min.js', array('jquery'), '20170228', true );
  wp_enqueue_script( 'mrollover', get_template_directory_uri() . '/js/jquery.multirollover.js', array('jquery'), '20170228', true );
  wp_enqueue_script( 'heightline', get_template_directory_uri() . '/js/jquery.heightLine.js', array('jquery'), '20170228', true );

  // サイト共通のCSSの読み込み
  wp_enqueue_style( 'reset', get_template_directory_uri() . '/css/reset.css', "", '20170228' );
  wp_enqueue_style( 'main', get_template_directory_uri() . '/style.css', "", '20170228' );
  
  if (!is_home()) {
      wp_enqueue_style( 'second', get_template_directory_uri() . '/css/second.css', "", '20170228' );
  }
}
add_action('wp_enqueue_scripts', 'add_files');