cocoonで固定ページの一覧をいい感じに表示するやつ

cocoonで固定ページの一覧をいい感じに表示するやつを作ったので乗せます。実際の表示はこの記事の一番下に乗せました。

 cocoonで動作する想定ですが、cocoon-childのstyle.cssを多少いじっているため、別の環境ではうまく動作しない可能性があります。まあ参考程度って感じです。

やり方

 wp-content/themes/cocoon-child-masterにあるfunctions.phpに以下を追記。
 このとき、デフォルトのアイキャッチ画像のURLは適当に変更してください。

function my_koteipage_list() {
	global $post;
	$args = array(
		'post_type' => 'page', // 固定ページを指定
		'posts_per_page' => -1,
        'orderby' => 'modified', // 最終更新日でソート
        'order' => 'DESC'
	);
	$posts_array = get_posts($args);
	foreach($posts_array as $post):
		setup_postdata($post);
		$post_date = get_the_date('Y.m.d.'); //記事の投稿日
        $modified_date = get_the_modified_date('Y.m.d.'); //記事の更新日
		$link = get_the_permalink(); //記事のリンク
		$title = get_the_title(); //記事のタイトル
        //記事のサムネイル画像のURL
        $image_url_320 = get_the_post_thumbnail_url($post->ID,array(320,180));
        $image_url_160 = get_the_post_thumbnail_url($post->ID,array(160,90));
        $image_url_120 = get_the_post_thumbnail_url($post->ID,array(120,68));
        if (!$image_url_320 || !$image_url_160 || !$image_url_120) {
            //アイキャッチ画像が設定されていない場合は、デフォルトのアイキャッチのURLを使用する。
            $image_url_320 = "https://www.fruity-floral.com/wp-content/uploads/2020/04/20170202171141-320x180.png";
            $image_url_160 = "https://www.fruity-floral.com/wp-content/uploads/2020/04/20170202171141-160x90.png";
            $image_url_120 = "https://www.fruity-floral.com/wp-content/uploads/2020/04/20170202171141-120x68.png";
        }
        $category = get_the_category();
        if (!empty($category)) {
            $category_name = $category[0]->name; // 最初のカテゴリー名を取得
        } else {
            $category_name = '未分類'; // カテゴリーが割り当てられていない場合の表示
        }

        $digest = get_the_excerpt(); //記事のダイジェスト

        if(is_user_administrator() && is_admin_panel_visible() && !is_amp() && !isset($_GET['demo']) && (is_admin_panel_singular_page_visible() || is_admin_panel_not_singular_page_visible())){
            //ログイン中だけpvを表示するようにする。
            //以下pv取得関数はcocoon独自のものなので注意。
            $todays_pv = get_todays_pv();
            $last_7days = get_last_7days_pv();
            $last_30days_pv = get_last_30days_pv();
            $all_pv = get_all_pv();
            $html_pv = '<div class="admin-pv">
                            <span class="far fa-chart-bar fa-fw" aria-hidden="true"></span>
                            <span class="today-pv">
                                <span class="today-pv-label">本日:</span>
                                <span class="today-pv-count">'.$todays_pv.'</span>
                            </span>
                            <span class="week-pv">
                                <span class="week-pv-label">週:</span>
                                <span class="week-pv-count">'.$last_7days.'</span>
                            </span>
                            <span class="month-pv">
                                <span class="month-pv-label">月:</span>
                                <span class="month-pv-count">'.$last_30days_pv.'</span>
                            </span>
                            <span class="all-pv">
                                <span class="all-pv-label">全体:</span>
                                <span class="all-pv-count">'.$all_pv.'</span>
                            </span>
                        </div>';
        } else {
            $html_pv = '';
        }

        $html .= '<a href="' . esc_url($link) . '" class="entry-card-wrap a-wrap border-element cf" title="' . $title . '">
                    <article class="entry-card">
                        <figure class="entry-card-thumb card-thumb e-card-thumb">
                            <img width="320" height="180" src="'.esc_url($image_url_320).'" class="entry-card-thumb-image card-thumb-image wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="'.esc_url($image_url_320).' 320w, '.esc_url($image_url_120).' 120w, '.esc_url($image_url_160).' 160w" sizes="(max-width: 320px) 100vw, 320px">
                                <span class="cat-label cat-label-45">' . $category_name . '</span>
                        </figure><!-- /.entry-card-thumb -->
                        <div class="entry-card-content card-content e-card-content">
                            <div class="entry-card-title card-title e-card-title" itemprop="headline">
                                ' . $title . '
                            </div>
                            <div class="entry-card-snippet card-snippet e-card-snippet">
                                ' . $digest . '
                            </div>
                            ' . $html_pv . '
                            <div class="entry-card-meta card-meta e-card-meta">
                                <div class="entry-card-info e-card-info">
                                    <span class="post-date">
                                        <span class="far fa-clock" aria-hidden="true"></span>
                                        <span class="entry-date">'. $post_date .'</span>
                                    </span>
                                    <span class="post-update">
                                        <span class="fas fa-history" aria-hidden="true"></span>
                                        <span class="entry-date">'. $modified_date .'</span>
                                    </span>
                                </div>
                                <div class="entry-card-categorys e-card-categorys">
                                    <span class="entry-category cat-label-45">' . $category_name . '</span>
                                </div>
                            </div>        
                        </div><!-- /.entry-card-content -->
                    </article>
                </a>';
	endforeach;
	wp_reset_postdata();
	return $html;
}
add_shortcode('my_koteipage_list','my_koteipage_list');

 ページ内の固定ページ一覧を表示したい場所に以下を書く。

[my_koteipage_list]

実際の表示

ボードゲーム
ボードゲームまとめ
 プレイしたことがあるボードゲームを並べていきます。ほぼ自分用。 ボードゲーム一覧麻雀ジャンル: 麻雀,対戦,中量級評価: 10プレイ回数: 3回以上 まず私は麻雀は好きではないです。ただボードゲームの王を一つ決めろって […]
レビュー
百合作品まとめ
 自分用の百合作品リスト。 私が読んだこと、見たことのある百合作品を評価(100点満点)や感想をつけて羅列していきます。  一応百合メインの作品を乗せる方針でいきます。いわゆるきらら系とか、他の私が勝手に百合だと妄想した […]
未分類
固定ページ一覧
未分類
保護中: 私の中の星は強い願望なんでも叶える
この投稿はパスワードで保護されているため抜粋文はありません。
未分類
資格を取る
 資格を少しずつ集めて行こと思います。将来的に取りたい資格と、取った資格をリストしておきます。 取りたいもの 持ってるもの
レビュー
私が他人に購入を強く進める商品たち
 おすすめの商品リストです。いいもの見つけたらぼちぼちと更新していきます。ちなみにほとんどの人が持っているようなものは除きます(エアコンとかスマホとか)。 同じランクでも基本的に上に書いてあるもののほうがおすすめ度が高い […]
未分類
フランちゃんbotとの遊び方
フランちゃんbot @flan_s_bot  このbotは東方projectに登場するキャラクター、フランドール・スカーレットのbotです。 お世話係(中の人)は@PKST_puyo2 三行でわかる遊び方 フォローする。 […]
未分類
サイトマップ

コメント

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