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

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

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

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

PHP

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

Q&A

0回答

379閲覧

Custom Post Type UIで作成したカスタム投稿の記事をを固定ページに一覧表示させる

non-non

総合スコア10

WordPress

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

PHP

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

0グッド

0クリップ

投稿2023/01/21 05:01

前提

Wordpressでオリジナルテーマを作成しています。
Worksという固定ページに、Custom Post Type UIで作成したカスタム投稿「works」に投稿した記事を一覧表示させようと思い、
page-works.php、single-works.phpを作成して、固定ページのパーマリンクをworksにした際、トップページが表示されます。

実現したいこと

・Custom Post Type UIで「works」という投稿タイプを作成し、固定ページ Works(page-works.php)に表示し、記事一覧ページを作成したい。

・一覧ページ https://XXXXX.com/works
・投稿記事ページ https://XXXXX.com/works/投稿日時

・トップページにカスタム投稿の記事タイトルを出力させたい。(カスタム投稿で作成した記事のタイトルを取得したい)

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

Worksという投稿タイプは作成できたが、固定ページ(page-works.php)に記事一覧ページが表示されず、
トップページが表示される。
また、どう影響しているのか不明だが、プラグイン「Custom Post Type Permalinks」を無効化すると記事一覧が表示される。

該当のソースコード

page-works.php

PHP

1<?php 2 $locale = get_locale(); 3 $translation = [ 4 'ja' => [ 5 'List1' => '項目1', 6 'List2' => '項目2' 7 ], 8 'en_US' => [ 9 'List1' => 'list1', 10 'List2' => 'list2' 11 ] 12 ] 13?> 14 15<?php 16 if($locale === "ja") { 17 get_header("ja"); 18 } else { 19 get_header("en"); 20 } 21?> 22<div class="changeCard"> 23<?php 24 $args = array( 25 'post_type' => 'works', 26 'posts_per_page' => 12 27 ); 28 $the_query = new WP_Query($args); 29?> 30<?php if ($the_query->have_posts()): ?> 31 <ul> 32 <?php while ($the_query->have_posts()) : $the_query->the_post(); ?> 33 <li class="changeItem defaultList"> 34 <a href="<?php echo esc_url(get_permalink()); ?>"> 35 <?php the_post_thumbnail(); ?> 36 <div class="changeItemTxt"> <time class="pubdate sng-link-time dfont" itemprop="datePublished"><?php 37if($locale === "ja") { 38 echo get_post_time('Y.n.j'); 39} else { 40 echo get_post_time('F j, Y'); 41} 42?></time> 43 <p class="itemTitle"><?php the_title(); ?></p> 44 <p class="read_txt"> 45 <?php $value = get_field('List1'); 46 if (empty($value)) : else : ?> 47 <!-- 入力がある場合に表示させる --> 48 <p class="read_txt"><?php echo $translation[$locale]['List1'] ?><?php the_field('Custom-field-name'); ?></p> 49<?php endif; ?> 50 </p> 51 <p class="read_txt"> 52 <?php $value = get_field('List2'); 53 if (empty($value)) : else : ?> 54 <!-- 入力がある場合に表示させる --> 55 <p class="read_txt"><?php echo $translation[$locale]['List2'] ?><?php the_field('Custom-field-name'); ?></p> 56<?php endif; ?> 57 </p> 58 </div> 59 </a> 60 </li> 61 <?php endwhile; ?> 62 </ul> 63<?php else: ?> 64 <p>記事はありません。</p> 65<?php endif; ?> 66<?php wp_reset_postdata(); ?> 67<?php 68 if($locale === "ja") { 69 get_footer("ja"); 70 } else { 71 get_footer("en"); 72 } 73?>

single-works.php

<?php $locale = get_locale(); $translation = [ 'ja' => [ 'List1' => '・項目1', 'List2' => '・項目2:' ], 'en_US' => [ 'List1' => '- list1', 'List2' => '- list2' ] ] ?> <?php if($locale === "ja") { get_header("ja"); } else { get_header("en"); } ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="works-main"> <div class="content-container"> <div class="works-content"> <h1><?php the_title() ?></h1> <p class="works-txt"><?php $value = get_field('Custom-field-name'); if (empty($value)) : else : ?> <!-- 入力がある場合に表示させる --> <?php echo $translation[$locale]['List1'] ?>:<?php the_field('Custom-field-name'); ?><br> <?php endif; ?> <?php $value = get_field('development'); if (empty($value)) : else : ?> <!-- 入力がある場合に表示させる --> <?php echo $translation[$locale]['List2'] ?><?php the_field('Custom-field-name'); ?> <?php endif; ?></p> <?php the_content(); ?> <p class="works-txt"><?php $value = get_field('Custom-field-name'); if (empty($value)) : else : ?> <!-- 入力がある場合に表示させる --> <?php the_field('Custom-field-name'); ?><br> <a href="<?php the_field('Custom-field-name'); ?>"><?php the_field('url-field1'); ?></a> <?php endif; ?></p> <p class="works-txt"><?php $value = get_field('Custom-field-name'); if (empty($value)) : else : ?> <!-- 入力がある場合に表示させる --> <?php the_field('Custom-field-name'); ?><br> <a href="<?php the_field('Custom-field-name'); ?>"><?php the_field('Custom-field-name'); ?></a> <?php endif; ?></p> </div> </div> </div> <?php endwhile; else : ?> <p>表示できる記事がありません。</p> <?php endif; ?> <?php if($locale === "ja") { get_footer("ja"); } else { get_footer("en"); } ?>

試したこと

Custom Post Type UIでworksというスラッグで投稿タイプを作成し、
パーマリンクをworksにした固定ページを作成してみましたが、固定ページとして認識されず、トップページが表示されました。

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

【使用プラグイン】
・Custom Post Type UI
・Bogo
・Custom Post Type Permalinks

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

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

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

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

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

CHERRY

2023/01/21 06:42

Custom Post Type Permalinks の設定はどのようになっていますか? また、ダッシュボードの設定から、パーマリンクの設定 を開いて、そのまま保存すると何か状況は変わりますか?
non-non

2023/01/21 12:25

ご質問ありがとうございます。 以下の設定になっております。 http://サイトアドレス/works/%post_id%/ /%post_id%/の箇所がテキストフィールドになっています。 プラグイン「Bogo」でサイトの言語に設定している英語ページの方では、テストで作成した記事が一覧に表示され、Bogoの言語切り替えスイッチから日本語ページに移動した際、本来であれば日本語の記事一覧ページが表示されるはずなのですが、トップページが表示されます。 また、そのページのURLはhttp://サイトアドレス/ja/works/になっております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問