10/21 ブログの大幅リニューアル

週末山紀行のトップページを大幅リニューアル。

やりたかったこと
・各見出し投稿に投稿日、カテゴリ、コメントの情報を表示
・同じフォーマットでDIY、書籍、想い出深い山行も表示
・これらは中央カラムに表示
・この実現のために、トップページを固定ページで作り込む


WordPressでのトップページ構成メモ
・固定ページで作成
・htmlは直書き可能
・テーマcocoon上では、htmlの中にphpは書けない
・DBからの投稿情報取り出しはphpを使う
  phpはfunctions.phpにショートコードのサブルーチンとして記述する
  記述したfunctions.phpをFTPでアップロード
  固定ページで作成したトップページにショートコード記述して、読みだして動作させる
  /wp-content/themes/cocoon-child-master/functions.php
・cssはカスタマイズー追加css に追記する
  →うまく書かないと機能してくれない。「important」指定だけではダメ
   ※記述してるけど動作に寄与してない記述あり(放置)
・投稿ページ内のブロック単位で、cssの設定が可能。
 カスタマイズー追加css に .Sample1-Table のような記述をしたうえで、
 投稿画面にて、設定したいブロックをクリックし、「追加cssクラス」.Sample1-Tableを記述


10/21実施内容


トップページの記述例
「arch_yama undo=登山・山スキー記録 cat=192,193,194,195,196,197,198,199,200,201 numbers=5 tokodate=1 catlink=1 commelink=1 asc=0」


functions.phpに記載した内容

function arch_yama($hikisuu) {

	if($hikisuu['asc']){
		$junban='ASC';
	}else{
		$junban='DESC';
	}

	$args = array(
		'category'	=> $hikisuu['cat'],
		'date_query'	=> array(
			array(
				'year' => $hikisuu['nen'],
//				'month' => 9,
			),
		),
		'include'	=> $hikisuu['tokoid'],
		'order'	=> $junban,
		'posts_per_page' => $hikisuu['numbers'],
	);


	$my_posts = get_posts($args);

	if(!empty($my_posts )){


		$output = '';
		if($hikisuu['nen']){
			$output.= '<b><h1>' . $hikisuu['nen'] . '年</h1></b>';
		}
		$output .='<table>';

		foreach($my_posts as $p){

			//投稿の概要表示(引数なし)
			// 抜粋に文字入力あり 抜粋を表示
			// 抜粋に文字入力なし 投稿の先頭50文字を表示
			if($p->post_excerpt){
				$content=$p->post_excerpt;
			}else{
				setup_postdata( $p->ID );
				$content = get_the_content($p->ID);
				$content = wp_strip_all_tags( $content );
				$content = strip_shortcodes( $content );
				$content =wp_trim_words( $content, 50 , '…' );
			}


			//引数tokodatelink
			// 1 投稿日表示有効
			// 0 投稿日表示無効
			$tokodateval='';
			if($hikisuu['tokodate']){
				$tokodateval= "\n".'<div class="mitsu_archive_entrydate">'.  mysql2date('Y.n.j',$p->post_date) .' ';
			}

			//引数catlink
			// 1 カテゴリ表示有効
			// 0 カテゴリ表示無効
			$catlinkval='';
			if($hikisuu['catlink']){
				$categories = get_the_category($p->ID);
				foreach( $categories as $cat ){
					$catlinkval.= $cat->name.'[<a href="' . get_category_link( $cat->term_id ) . '">'.$cat->count.'</a>]';
				}
			}

			//引数commelink
			// 1 コメント数表示有効
			// 0 コメント数表示無効
			$commelinkval='';
			if($hikisuu['commelink']){
				$commelinkval= 'コメント[<a href="' . get_comments_link($p->ID) . '">'.get_comments_number($p->ID).'</a>]';
			}



			$output .= '<tr><td width="25%"><img src="' . get_the_post_thumbnail_url( $p->ID ,'thumbnail') .
			'"></td><td class="mitsu_archive_td"><a class="mitsu_archive_title" href="' . get_permalink( $p->ID ) . 
			'"><div class="mitsu_archive_title">' . $p->post_title . '</div></a><div class="mitsu_archive_content">'.
			$content . '</div>'.$tokodateval. $catlinkval.$commelinkval.
			'</div></td></tr>';
		}
		$output .= '</table>';
	}
	return $output;
}
add_shortcode( 'arch_yama', 'arch_yama' );

残件
MUSTではないが、、、
・サイドメニューの3つのカテゴリをベタで表示する固定ページを作成し、トップページにそのリンクをはる
→DBから抽出するphpは作成済なので、アコーディオンの初期状態を「オープン」に変更し、このphpを読みだす固定ページを作成すればよいはず

コメント

タイトルとURLをコピーしました