週末山紀行のトップページを大幅リニューアル。
やりたかったこと
・各見出し投稿に投稿日、カテゴリ、コメントの情報を表示
・同じフォーマットで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を読みだす固定ページを作成すればよいはず


コメント