<repo_name>chankei613/ajsai_official_blog_theme<file_sep>/page.php
<?php
// ヘッダーを取得
get_header();

// コンテンツを取得
if(have_posts()): while(have_posts()): the_post();
 the_content();
endwhile; endif; wp_reset_postdata();

// フッターを取得
get_footer(); 
?><file_sep>/sidebar.php
<aside class="l-sidebar">
	<?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside><file_sep>/template/parts/header-image.php
<div class="m-mainVisual">
	<?php the_custom_header_markup();?>
</div><file_sep>/functions.php
<?php 
/*
 * セットアップ
 */
function ajsai_setup(){
	/*
	 * アイキャッチ画像をサポート
	 */
	add_theme_support( 'post-thumbnails' );

	/*
	 * FEEDのリンク RSSにフィードが登録できるようになる
	 */
	add_theme_support( 'automatic-feed-links' );

	/* 投稿フォーマットをサポート
	 * CSSによるみための変更：post_class()で format-{} のクラス名を出力可能
	 * PHPごと変更： get_post_format() フォーマットを確認し、条件分岐に使うことができる
	 *
	 */
	add_theme_support( 'post-formats', array(
	    'aside',
	    'image',
	    'video',
	    'quote',
	    'link',
	));

	/* 
	 * コアから出力されるHTMLをHTML5にフォーマット
	 */
	add_theme_support( 'html5', array(
	    'search-form',
	    'comment-form',
	    'comment-list',
	    'gallery',
	    'caption',
	));

	/* 
	 * カスタムヘッダーをアクティブに
	 * flex-height, flex-widthをtrueにした場合は、getして出力できる<img src="<?php header_image(); ?>" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" alt="" />
	 */
	$defaults = array(
		'default-image'          => get_template_directory_uri() . '/images/header.jpg', // 何もない状態のデフォルトの画像をセットする
		'random-default'         => false,
		'flex-height'            => false, // フレキシブルなヘッダー使用時はtrueにして、heightの項目を設定
		'height'                 => 0,
		'flex-width'             => false,
		'width'                  => 0,
		'default-text-color'     => '',
		'header-text'            => true,
		'uploads'                => true,
		'wp-head-callback'       => '',
		'admin-head-callback'    => '',
		'admin-preview-callback' => '',
	);
	add_theme_support( 'custom-header', $defaults );

	/* 
	 * カスタムロゴをアクティブに
	 * 管理画面からロゴ画像を設定できる
	 */
	add_theme_support( 'custom-logo', array(
		'height'      => 100,
		'width'       => 300,
		'flex-height' => true,
		'flex-width'  => true,
		'header-text' => array( 'site-title', 'site-description' ),
	));

	/* 
	 * wp_head()で出力されるタイトルタグをいい感じにする
	 * 
	 */
	add_theme_support( 'title-tag' );

	/* 
	 * テーマカスタマイザーを使用した時に、ウィジェット設置時にリロードなしで見た目の変更を確認できる。
	 * 
	 */
	add_theme_support( 'customize-selective-refresh-widgets' );

	/* 
	 * wp_nav_menu()をアクティブにする
	 * 管理画面に「メニュー」の項目を追加
	 */
	register_nav_menu( 'header-navigation', 'Header Navigation' );

	$starter_content = array(
		'widgets' => array(
			// ウィジェットを登録
			'top-right' => array(
			    'id' => 'sidebar-1',
			    'before_widget' => '<aside class="widget %2$s">',
			    'after_widget' => '</aside>',
			    'before_title' => '<h3 class="widget-title">',
			    'after_title' => '</h3>',
			),
			'footer-left' => array(
			    'id' => 'sidebar-2',
			    'before_widget' => '<div class="widget %2$s">',
			    'after_widget' => '</div>',
			    'before_title' => '<p class="widget-title">',
			    'after_title' => '</p>',
			),
			'footer-center' => array(
			    'id' => 'sidebar-3',
			    'before_widget' => '<div class="widget %2$s">',
			    'after_widget' => '</div>',
			    'before_title' => '<p class="widget-title">',
			    'after_title' => '</p>',
			),
			'footer-right' => array(
			    'id' => 'sidebar-4',
			    'before_widget' => '<div class="widget %2$s">',
			    'after_widget' => '</div>',
			    'before_title' => '<p class="widget-title">',
			    'after_title' => '</p>',
			),
		),

		// 固定ページを定義する。
		'posts' => array(
			'front',
			'about',
			'contact',
			'blog',
			'homepage-section',
		),

		// フロントページをトップページ設定する、
		'options' => array(
			'show_on_front' => 'page',
			'page_on_front' => '{{front}}',
			'page_for_posts' => '{{blog}}',
		),

		// Set the front page section theme mods to the IDs of the core-registered pages.
		'theme_mods'  => array(
			'panel_1' => '{{homepage-section}}',
			'panel_2' => '{{about}}',
			'panel_3' => '{{blog}}',
			'panel_4' => '{{contact}}',
		),

		// Set up nav menus for each of the two areas registered in the theme.
		'nav_menus'   => array(
			// Assign a menu to the "top" location.
			'top'    => array(
				'name'  => __( 'Top Menu', 'twentyseventeen' ),
				'items' => array(
					'link_home', // Note that the core "home" page is actually a link in case a static front page is not used.
					'page_about',
					'page_blog',
					'page_contact',
				),
			),

			// Assign a menu to the "social" location.
			'social' => array(
				'name'  => __( 'Social Links Menu', 'twentyseventeen' ),
				'items' => array(
					'link_yelp',
					'link_facebook',
					'link_twitter',
					'link_instagram',
					'link_email',
				),
			),
		),

	);
	add_theme_support( 'starter-content', $starter_content );
}
add_action( 'after_setup_theme', 'ajsai_setup' );


/**
 * Load scripts and style sheets
 * WordPressのコアにあるjQueryを読み込む
 */
function load_scripts(){ 
  wp_enqueue_script(
    'init', // ハンドル名
    get_template_directory_uri() . '/assets/js/init.min.js', // ソース
    array( 'jquery' ), // 先に読み込まれているべきScript（ハンドル名） 
    filemtime( get_template_directory() . '/assets/js/init.min.js' ), // バージョン情報 
    false // Bodyタグの最後でロードしますか？
  );
}
add_action( 'wp_enqueue_scripts', 'load_scripts' );

/**
 * Register our sidebars and widgetized areas.
 * ウィジェットに対応
 */
function arphabet_widgets_init() {
	register_sidebar( 
		array(
			'name' =>'トップページ みぎ',
		    'id' => 'sidebar-1',
		    'before_widget' => '<aside class="widget %2$s">',
		    'after_widget' => '</aside>',
		    'before_title' => '<h3 class="widget-title">',
		    'after_title' => '</h3>',
		)
	);
	register_sidebar( 
		array(
			'name' =>'フッター ひだり',
		    'id' => 'sidebar-2',
		    'before_widget' => '<div class="widget %2$s">',
		    'after_widget' => '</div>',
		    'before_title' => '<p class="widget-title">',
		    'after_title' => '</p>',
		)
	);
	register_sidebar( 
		array(
			'name' =>'フッター 中央',
		    'id' => 'sidebar-3',
		    'before_widget' => '<div class="widget %2$s">',
		    'after_widget' => '</div>',
		    'before_title' => '<p class="widget-title">',
		    'after_title' => '</p>',
		)
	);
	register_sidebar( 
		array(
			'name' => 'フッター みぎ',
		    'id' => 'sidebar-4',
		    'before_widget' => '<div class="widget %2$s">',
		    'after_widget' => '</div>',
		    'before_title' => '<p class="widget-title">',
		    'after_title' => '</p>',
		)
	);
}
add_action( 'widgets_init', 'arphabet_widgets_init' );

/*
 * 記事タイトルの文字数制限
 *
 */
add_filter('the_title', 'my_the_title', 10, 2);
function my_the_title($title, $id) {
    $title = mb_strimwidth($title, 0, 40, "…","UTF-8");
    return $title;
}

/*
 * 記事本文抜粋表示
 * 使用方法：the_excerpt();
 */
function new_excerpt_mblength($length) {
    // 100文字制限
    return 60;
    // モバイルの際に出しわけ
    // return ( wp_is_mobile() ) ? 35 : 140;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');
// 抜粋後の文末につける文字
function new_excerpt_more($more) {
     return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

/*
 * 固定ページで現在のページ数が無視されるのを回避
 * ページネーションがバグを起こさないようにするため
 */
add_action( 'parse_query', 'my_parse_query' );
function my_parse_query( $query ) {
  if ( ! isset( $query->query_vars['paged'] ) && isset( $query->query_vars['page'] ) )
    $query->query_vars['paged'] = $query->query_vars['page'];
}


/*
 * pre_get_posts
 * メインクエリを一時的に使ってループ
 * カテゴリなどの自動取得にはこちらの関数が便利 : get_queried_object()
 */
add_action( 'pre_get_posts', 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
    if ( is_admin() || ! $query -> is_main_query() ) return;
    
    // is_~の条件分岐タグを使ってページごとの設定をする
    // if ( $query -> is_home() ) {
    //     $paged = get_query_var('paged');
    //     $query -> set( 'posts_per_page', '' );
    //     $query -> set( 'paged', $paged );
    // }
}
<file_sep>/header.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/assets/css/style.min.css">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header class="l-header">
	<div class="l-header__main">
	<?php 
	$site_head = get_custom_logo();
	if( empty( $site_head ) ){
		$site_head = get_bloginfo( 'name' );
	}
	echo "<h1 class=\"siteName\">".$site_head."</h1>";
	$description = get_bloginfo( 'description', 'display' );
	if ( $description || is_customize_preview() ){
		echo "<p class=\"siteDesc\">".$description."</p>";
	}
	?>
	</div>
	<?php
	if( is_front_page() ){
	 require(dirname(__FILE__).'/template/parts/header-image.php');
	}?>
	<?php
	$setting = array(
		'menu_class'      => 'main-menu', //メニューにclassを付与
		'container'       => 'nav',
		'container_class' => 'l-nav', //コンテナにclassを付与
		'fallback_cb'     => 'wp_page_menu', //theme_locationで指定したメニューが見つからない場合に実行fallback_cb
		'echo'            => true,
		'depth'           => 0, //メニュー階層を指定、※0の場合は全階層
		'items_wrap'      => '<ul class="%2$s">%3$s</ul>',
	);
	wp_nav_menu( $setting );
	?>
</header>
<file_sep>/README.md
# ajsai_official_blog_theme
WordPress official theme for blogger
<file_sep>/index.php
<?php get_header();?>
<div class="l-main -column2">
	<main class="l-mainContent">
		<?php if ( have_posts() ) :?>
		<div class="l-card">
		<?php while ( have_posts() ) :the_post();?>
			<article class="l-card__content"><a href="<?php the_permalink();?>">
				<div class="l-card__thumbnail"><?php the_post_thumbnail();?></div>
				<div class="l-card__main">
					<time class="l-card__date" datetime="<?php the_time('Y-m-d');?>"><?php the_time('Y/m/d');?></time>
					<h2 class="l-card__title"><?php the_title();?></h2>
					<div class="l-card__briefing">
						<?php the_excerpt();?>
					</div>
				</div>
			</a></article>
		<?php endwhile;?>
		</div>
		<?php endif;?>
	</main>
	<?php get_sidebar();?>
</div>
<?php get_footer();?><file_sep>/footer.php
<footer class="l-footer">
	<div class="l-footer__column3">
		<?php 
		if ( is_active_sidebar( 'sidebar-2' ) ){
			dynamic_sidebar( 'sidebar-2' );
		}
		if ( is_active_sidebar( 'sidebar-3' ) ){
			dynamic_sidebar( 'sidebar-3' );
		}
		if ( is_active_sidebar( 'sidebar-4' ) ){
			dynamic_sidebar( 'sidebar-4' );
		}
		?>
	</div>
	<small>&copy; Hydrangea</small>
</footer>
<?php wp_footer(); ?>
</body>
</html><file_sep>/single.php
<?php get_header();?>
<div class="l-main -column2">
	<main class="l-mainContent">
		<article class="l-postContent">
			<?php if ( have_posts() ) : while ( have_posts() ) :the_post();
			$post_cats = get_the_category();
			$post_tags = get_the_tags();
			?>
			<header class="l-postContent__head">
				<h1><?php the_title();?></h1>
				<div class="l-postContent__add">
					<?php 
					if( !empty($post_cats) ){
						foreach( $post_cats as $cats ){
							echo '<a href="'. get_category_link($cats->term_id) .'" class="l-postContent__category">'.$cats->name.'</a>';
						}
					}?>
					<time datetime="<?php the_time('Y-m-d');?>"><?php the_time('Y/m/d');?></time>
				</div>
				<?php 
				if( !empty($post_tags) ){
				echo '<ul class="l-postContent__tag">';
					foreach( $post_tags as $tags ){
						echo '<li><a href="'. get_tag_link($tags->term_id) .'">' .$tags->name. '</a></li>';
					}
				echo '</ul>';
				}?>
			</header>
			<div class="l-postContent__thumbnail"><?php the_post_thumbnail();?></div>
			<div class="l-postContent__main">
				<?php the_content();?>
			</div>
			<?php endwhile; endif;?>
			<footer class="l-postContent__footer">
				
			</footer>
		</article>
	</main>
	<?php get_sidebar();?>
</div>
<?php get_footer();?>