質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

885閲覧

WordPressのカスタム投稿タイプ、テーマスタイルを引き継いで表示する方法

lilychang

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/05/06 15:01

前提・実現したいこと

WordPressのカスタム投稿タイプをトップページに表示する時に、テーマの装飾をどうしたら引き継げるのかわからず質問させて頂きます。

-使用プラグイン-
Custom Post Type UI
Advanced Custom Fields

-表示したい場所-
home.php

-作成したファイル-
archive_books.php
single_books.php

-使用テーマ-
Luxeritas

カスタム投稿タイプをCPT UIで作成、カスタムフィールドをACFで作成して、書籍専用投稿タイプを作りました。
home.phpで投稿一覧の下に、書籍紹介用に同じスタイルで投稿が表示されるようにするには何が必要でしょうか。
だいそれたものではなく、単純にカテゴリ(カスタム投稿タイプ)毎に同じスタイルで投稿していきたいです。

発生している問題・エラーメッセージ

ワードプレスのhome.phpに表示するところまでは作成できましたが、スタイルが全く適用されません。調べましたが解決せず困っています。

イメージ説明

該当のソースコード

以下、子テーマにhome.phpをコピーして記述を追加したコードです。

get_header(); ?> <div id="section"<?php echo $luxe['content_discrete'] === 'indiscrete' ? ' class="grid"' : ''; ?>> <?php if( isset( $luxe['grid_type'] ) && isset( $luxe['list_view'] ) && $luxe['list_view'] !== 'content' ) { get_template_part( 'loop-grid' ); } else { get_template_part( 'loop' ); } ?> </div><!--/#section--> <!-- 書籍用カスタム投稿タイプ --> <?php $books_posts = get_posts('post_type=books&posts_per_page=5'); if ( !empty($books_posts) ): ?> <?php foreach ( $books_posts as $post ): setup_postdata($post); ?> <li><?php the_time('Y/m/d') ?></li> <li><a href="<?php the_permalink();?>"><?php the_title();?></a></li> <?php endforeach; wp_reset_postdata(); ?> <?php endif; ?> <!-- 書籍用カスタム投稿タイプ ここまで--> </main> <?php thk_call_sidebar(); ?> </div><!--/#primary--> <?php echo apply_filters( 'thk_footer', '' ); ?>

試したこと

カスタム投稿タイプ 表示``カスタム投稿タイプ CSSなどで検索して出てきたコードをいくつかトライしてみましたが、スタイルは引き継げず、そこでストップしています。

補足情報(FW/ツールのバージョンなど)

ワードプレスはブログ更新する程度では普通に使えるレベル、phpやcssは勉強しながらコピーして使っているレベルです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

実際に Web ブラウザに表示されている HTML や CSS が不明なので、一般的な推測で...

まず、投稿は、

if( isset( $luxe['grid_type'] ) && isset( $luxe['list_view'] ) && $luxe['list_view'] !== 'content' ) {
get_template_part( 'loop-grid' );
}
else {
get_template_part( 'loop' );
}

のような方法で、別のテンプレートファイルを読み込んで出力しているのに対し、カスタム投稿タイプは、

<li><?php the_time('Y/m/d') ?></li> <li><a href="<?php the_permalink();?>"><?php the_title();?></a></li>

と出力しているので、出力されている HTML の内容が異なると思われます。( get_template_part で読み込んでいるテンプレートの中身が不明なので、具体的な指摘はしません。 )

また、投稿は、

<div id="section" ...> 〜 </dev>

で囲われていますが、カスタム投稿タイプは、<div> で囲われていませんので、同じスタイルを反映させるためには、投稿の <div> タグの中に入れるか別途 <div> タグで囲う必要があるかもしれません。(CSSの内容が不明なので、CSSを確認して調節してください)

投稿2019/05/07 01:12

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lilychang

2019/05/07 09:10 編集

ありがとうございます! まず、<div>タグで囲う方法はうまくいきませんでした。 が、カスタム投稿タイプ(books)の取得&出力の仕方が不明だということに気づきました。 こちらが調べても解決できません。 >get_template_part で読み込んでいるテンプレートの中身が不明 get_template_part `loop-grid`は、テーマ付属の投稿表示レイアウトを変えられるテンプレートです。 https://thk.kanzae.net/wp/point/design/t1577/ `loop-grid`内で、ご指摘の <div id="section"> に対応すると思われる箇所のコードです。 ========== <?php $b_flag = false; } while( have_posts() === true ) { the_post(); // 通常スタイルを表示し終わったら、タイル型/カード型用の <div id="???"> 開始 if( $i === $first + 1 ) { ?> <div id="<?php echo $luxe['grid_type']; ?>-<?php echo $luxe['grid_cols']; ?>"> <?php } ?> <div class="toc<?php echo $luxe['content_discrete'] === 'discrete' ? ' grid ' : ' '; ?>clearfix"> <section> <?php if( $luxe['breadcrumb_view'] === 'inner' && $i <= $first && $b_flag === true ) { get_template_part( 'breadcrumb' ); $b_flag = false; } if( $i <= $first ) { ?> <h2 class="entry-title" itemprop="headline name"><a href="<?php the_permalink(); ?>" class="entry-link" itemprop="url"><?php the_title(); ?></a></h2> <?php unset( $luxe['meta_under'] ); get_template_part('meta'); } // ソースに無駄があるけど、速度的にこっちのが速いので if 分岐多段にした if( $paged === 1 && $i <= $first ) { if( !isset( $luxe['sticky_no_excerpt'] ) ) { // sticky_post も含めて全部抜粋で表示する場合 get_template_part('list-excerpt'); // 抜粋表示 } elseif( is_sticky() === true ) { // sticky_post の場合 get_template_part('list-content'); // 記事全文表示 } else { get_template_part('list-excerpt'); // 抜粋表示 } } elseif( $luxe['grid_type'] === 'card' ) { get_template_part('list-excerpt-card'); // グリッドレイアウト:カード型抜粋表示 } else{ get_template_part('list-excerpt-tile'); // グリッドレイアウト:タイル型抜粋表示 } ?> </section> </div><!--/.toc--> ========== カスタム投稿タイプ(books)を取得するコード、上記のphp<div id="section">に出力するコード、それぞれ参考になるものがあれば、教えていただけるとありがたいです。※現在自身でもリサーチ中です。
lilychang

2019/05/07 16:00 編集

=====投稿のループ===== if( isset( $luxe['grid_type'] ) && isset( $luxe['list_view'] ) && $luxe['list_view'] !== 'content' ) { get_template_part( 'loop-grid' ); } else { get_template_part( 'loop' ); } ========== をコピペして、 ========== get_template_part( ' ‘single’,’books’ ' ); get_template_part( ' ‘archive’,’books’ ' ); get_template_part( ’books’ '); ========== をhome.phpおよびloop-grid内で、いろいろな箇所に貼ってみましたが、反応なしでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問