一番分かりやすいWordPressとconcrete5のカスタマイズ方法の違い
Posted by admin at 12:39 日時 2014/09/15
このお題が分かりやすいなぁと常々思っています。企業サイトをCMSで構築するとして、ありがちなこのカスタマイズです。
「トップページに新着ニュース5件を表示してください。」
WordPressの場合
トップページへの変更ですので、お使いのテーマのindex.phpを開きましょう。ただし、お使いのテーマや設定によっては、front-page.php, home.php, page.phpのいずれか、またはそれ以外である可能性があります(Show Current Templateプラグインなどを入れておくとすぐに分かりますね)。
新着情報を表示したい箇所に、下記のコードを追加しましょう。ちなみに筆者がCodaのスニペットに入れていつも使っているコードです。
// 表示オプションの指定 $args = array( 'posts_per_page' => 5, // 表示件数 'cat' => 0, // カテゴリーの指定 'orderby' => 'post_date', // 日付順でソート 'order' => 'DESC', // 降順 'post_type' => 'post', // 投稿タイプの指定 'post_status' => 'publish', // 投稿ステータスの指定 'suppress_filters' => true, // プラグインが適用するフィルターフックの影響を避けるオプション 'ignore_sticky_posts' => true, // 先頭固定表示投稿を無視 'no_found_rows' => true, // パフォーマンス向上のために入れた方がいいオプションその1 'update_post_term_cache' => false, // パフォーマンス向上のために入れた方がいいオプションその2 'update_post_meta_cache' => false // パフォーマンス向上のために入れた方がいいオプションその3 ); // オプションを指定してWP_Queryオブジェクトの生成 $the_query = new WP_Query( $args ); // 条件に該当する投稿がある if ( $the_query->have_posts() ) { // 投稿の数だけ繰り返し while ( $the_query->have_posts() ) { $the_query->the_post(); // テンプレートタグを有効化 // タイトルを表示 ?> <h3><?php the_title(); ?></h3> <?php } } wp_reset_postdata(); // 投稿データのリセット。これを入れ忘れるとテンプレートタグの表示がおかしくなる
表示はテンプレートタグで変更します。
いいところ
WP_Queryの多彩なオプションを使えばかなり自在にデータベースから投稿を取得できる。
いまいちなところ
プログラム必須
concrete5の場合
トップページでツールバーの「+」ボタンをクリックします。開いたブロック一覧から、「ページリスト」ブロックをページにドラッグ&ドロップします。
ページリストの設定画面が開きますので、表示するページ数、表示したいコンテンツの種類を選びます。他にもフィルタ条件で絞り込むことができます。
さらに、ページ付けインターフェースを表示するか、サイトマップ上のどのページを表示するか、どの順番で表示するかを選びます。
新着情報一覧が作れました!
さらに、デザインを変更してみましょう。
じゃーん!
いいところ
お客さんでも設定が変更できる。PHP書かなくていい
いまいちなところ
設定項目に無いロジックで表示しようと思うと急にハードルは上がる(アドオンを買えば解決)
—
ちなみに、concrete5の画面はバージョン5.7です。5.6と基本的に機能は変わりませんが、画面がキレイになりましたね〜。