WordPressで代表的な文の形式(Post Type)で文(Post)とページ(Page)があります。 他にも WordPressでは、パーソナライズされた投稿形式、つまりカスタム投稿形式を作成できます。 たとえば、この記事で扱う「映画レビュー」の投稿形式、「ポートフォリオ」、または「役員の紹介」など、通常の投稿とは異なる特定の形式の投稿タイプを追加できます。 (ポストタイプの詳細は、 ここを参照してください。)
上記のような文を着実に作成すると仮定した場合には、まず上記のようなレイアウトを一つ作って文章を作成し、その次からは、以前の記事を複製(Clone)して使用することを考えてみることができます。 この場合には、毎回文を複製して変更する必要が面倒があり、二つ目は、レイアウトを変更しようとする場合には、これまで作成した文章のレイアウトをすべて変更しなければならない事態が発生するかもしれません。 したがって、単純に文(Post)を活用して、上記のように、多少特化した文を作成することは非効率的であることを悟ることができます。
このような場合に、上記のような映画感想の書き込みを集めて管理することができている場合よいでしょう。 そして、レイアウトを変更したい場合、簡単に変更することがありすることです。 そしてカテゴリーなどの別の分類体系も備えればと思います。
この場合、ユーザー定義文のタイプ(Custom Post Type)を利用することができます。
参照で文(Post)のカテゴリー機能を活用しても同様の効果を得ることができます。 つまり、特定のカテゴリ内の記事を、上記の図のようにレイアウトが出てくるように調整する方法です。 この方法を選択すると、ユーザー定義の文のタイプを利用するよりも、作業の流れがはるかに簡単になってカテゴリー機能もそのまま利用できるので、メリットがある反面、文(Post)タイプを利用するので、他の文とかなり分離させることが容易ではないようで文章テンプレートカテゴリに合わせてタグを追加する作業が初心者がするには容易ではないでしょう。 二つの方法の間には長所と短所がありますので、状況に合わせて選択してください。
この記事では、「映画」という新しいカスタム記事タイプを活用して「映画レビュー」を WordPressに追加する方法を説明します。
※参考までに、コーディング作業をせず、映画の検索サイト、不動産物件検索サイトなどのカスタムポストタイプとカスタム検索機能を実装したい場合Toolsetツールを使用することができます。
どのようにアクセスするか
まず、「映画レビュー」に入る項目とレイアウトについて想像します。 上の図では、次の項目が含まれています。
上記のフィールドを別々に追加して、個々の記事に表示されるようにする必要があります。 この作業も以下で行います。 全体として、次の順序で「映画レビュー」の投稿タイプを WordPressに追加します。
- Moivesユーザー定義文のタイプ(Custom Post Type)作成
- カスタムフィールド(Custom Field)
- 個々の文のテンプレートの作成
- アーカイブテンプレートの作成
- 分類の作成
やや複雑そうですが、プロセスは、直感的な方です。 一度だけ身につける簡単応用して、他の文のタイプにも簡単に作成することができます。 しかし、一方では、初心者が真似のは容易ではない部分がいくつかあります。 すぐにテンプレートのレイアウトを変更する操作です。 この作業の成否は、レイアウトをどれだけうまく構成するかにかかっていると思われます。 そのためには、多少のPHPとCSSの知識が必要です。 そしてテーマに沿って容易かもしれない難しいこともあるようです。 WordPressで成功を決定する最大の要素のXNUMXつがテーマです。 ここでもテーマの威力が現れるのです。 社説が長くなりましたね。 今本格的に始めましょうか? まず、新しい「文型」から作りましょう。
WordPress 「映画レビュー」投稿タイプを作成する方法
「ムービー」カスタム投稿タイプを追加する
ユーザー定義の文の種類を追加するには、手動でも可能ですが、ここでは、 Custom Post Type UIというプラグインを使用するようにします。 このプラグインがインストールされていない場合、今すぐインストールして有効にするようにします。
Custom Post Type UIをインストールして有効にすると、ダッシュボード(伝言板)に CPT UIというメニューが左側に追加されます。 「CPI UI」をクリックして入力し、 投稿タイプの追加/編集をクリックして、新しい文の種類を追加します。
適宜記入してください。 私はMovieという言葉を使って作ってみました。 ポートフォリオなら「Portfolio」、サービスなら「Service」などを使えばいいでしょうか? 上記では英語で入力しましたが、 Post Type Slugを除いては、ハングルで入力できます。
そしてここではArchiveを作成する予定なので、「Has Archive」の設定を下図のように設定するようにしてください。
さて、上記のように入力して保存した後に更新すると、左側のパネルに作成したユーザー定義の文が追加されたことが見えますか?
続いて、各記事に追加するユーザー定義フィールド(Custom Field)を追加するようにします。
カスタムフィールド(Custom Field)を追加する
ここで作成したい「映画レビュー」には、一般的な記事にはない項目がいくつかあります。 まさに 「映画タイトル」、「監督」、「出演」、「評価」、「トレーラーYouTube動画」このまさにそれです。 これらの各項目をカスタムフィールドに追加すると、各項目が値を持つようになりますので、後で他の用途にも活用することができます。 まずは各項目をカスタムフィールドに追加し、その値を受けて、単一の文(Single Post)に表示されるようにします。
この作業は、 高度なカスタムフィールドというプラグインを使うようにしましょう。 このプラグインがない場合は、インストールして有効にしてください。 このプラグインをインストールして有効にすると、「カスタムフィールド」というメニューがダッシュボードの左側のパネルに表示されます。 [Custom Fields]をクリックして新しいフィールドを追加します。
まず、「フィールドグループ」をXNUMXつ作成します。 私は「映画」と一つ作った。 次に、このグループにユーザーフィールドを追加します。
必要なフィールドを追加してください。 私は上記のように追加しました。 観覧平湾数字で指定し、残りはすべて「テキスト」と指定しました。 観覧坪の場合、5点満点基準で数字を記入するとアスタリスクで表示するようにします。 そして、「Location」で「Post Type」を「movie」に指定するようにします。 これで、ここで追加したユーザーフィールドグループは、新しく作成する投稿タイプにのみ表示されます。
これで、Moviesの記事タイプに新しいカスタムフィールドグループが追加されました。 「Movie Review」をタップしてXNUMXつの記事を作成すると、書き込みエディタの直下に追加したユーザーフィールドが表示されます。
続いて、個々の文のテンプレートを作成してみましょう。
Movies文の種類の文テンプレートの作成
文のテンプレートを最初から作成するのは簡単なことではありませんので、既存の文のテンプレートを利用して、作成するよう致します。 次の手順に従って、新しい記事タイプの文のテンプレートを作成することができます。
- single-movie.phpファイル(空のファイル)を作成します。
- single.phpファイルの内容をコピーします。
- コピーした内容をsingle-movie.phpファイルに貼り付けます。
- single-movie.phpファイルを変更します。
非常に簡単ですか? 本来知ることは簡単で知らなければ苦労する方法です。 問題は、single-movie.phpをどのように修正するかです。 参考までに、いくつかのテーマの場合single.phpにすべての内容があるのではなくcontent.phpのような他のファイルを取得するコードになっていることがあります。
たとえば、テストしたテーマがTwenty Thirteenテーマですが、single.phpファイルを見ると、
<?php get_template_part( 'content', get_post_format() ); ?>
上記のような部分が本体部分はcontent.phpファイルを呼んでくるという意味です。 get_template_part()については、こちらを参照してください。
だから私は簡単に上記のコード部分を "content.php"ファイルの内容として貼り付けました。 次に、本文のすぐ上に次のコードを追加して、カスタムフィールドが表示されるようにしました。
<table width="50%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="25%"><strong>제목:</strong></td> <td width="75%"><?php the_field('title'); ?></td> </tr> <tr> <td><strong>감독:</strong></td> <td><?php the_field('director'); ?></td> </tr> <tr> <td><strong>출연:</strong></td> <td><?php the_field('actors'); ?></td> </tr> <tr> <td><strong>평점:</strong></td> <td><?php if( get_field('rating') ) { $starNumber = get_field('rating'); for($x=1;$x<=$starNumber;$x++) { echo '<img src="http://www.site-url.com/star.png" />'; } if (strpos($starNumber,'.')) { echo '<img src="http://www.site-url.com/half.png" />'; $x++; } while ($x<=5) { echo '<img src="http://www.site-url.com/blank.png" />'; $x++; } echo '('; the_field('rating'); echo ')'; } ?></td> </tr> <tr> <td><strong>트레일러:</strong></td> <td><?php if( get_field('youtubeurl') ){ $embed_code = wp_oembed_get( get_field('youtubeurl'), array('width'=>440) ); echo $embed_code; } ?></td> </tr> </table>
そして、参考として「映画」に対応する文章の種類を表示するには
is_singular( 'movie' );
上記のようなコードを使用する必要がないと WordPress 説明書に出てきます(ここ を参照)。 しかし、このコードがない仕事に行くには、次のコードを使用してください。
if ( 'movie' == get_post_type() )
参考までに is_single()は、すべての文のタイプ(attachmentとpage post typeを除く)の単一文を表示に使用されます。 したがって、single.phpの内容のうち、is_single()はそのままにしておくと、新しく作成したカスタム文の種類まですべて含めるので、single-movie.phpファイルで上記の「カスタムフィールド」部分以外はあえて修正する必要はありません。 (なぜなら、is_single()はすでにすべての投稿タイプを含んでいるからです。 ここ 参考)
上記のコードではstar.png、half.png、blank.pngは星の形を表すアイコンです。 それぞれオンビョル、班別、ビンビョル(空の星)を意味します。 インターネットで適切な星をダウンロードしたり、直接作成しただけでもされます。
上記のように修正してMovie Reviewで文を一つ作成してみると次のように表示されます。
どうですか? もっともらしい見えますか? レイアウトは、欧米に合わせて変更します:
今継続してアーカイブページを作成してみましょう。
アーカイブページを作成する
このサンプルでは、新たに作成された文のタイプのアーカイブのページでは http://www.your-url/movieになります。 しかし、このページにアクセスしてみるとないページに出たり文の内容が表示されないことです。 なぜならarchiveページが存在しないからです。 archiveページも既存のarchiveテンプレートを活用するようにします。
- archive-movie.phpファイル(空のファイル)を作成します。
- archive.phpファイルの内容をコピーします。
- コピーした内容をarchive-movie.phpファイルに貼り付けます。
- archive-movie.phpファイルを変更します。
上記のテンプレートファイルを作成するのと同じでしょうか? ただしsingle.phpファイルがarchive.phpファイルに変わっただけ異なります。 さてarchive-movie.phpファイルをどのように修正すればいいですか? おくと、is_single()部分の内容がそのまま適用されます。 もしかしたらアーカイブのページが正しく表示されたら、あえて変更する必要がありません。 私 if( 'movie' == get_post_type()) 条件を使用して適切に修正しました。 このように変更すると、Twenty Thirteenテーマで、次のように表示されます。
テストに使用したテーマでは、要約文(excerpt)の代わりに全体文を表示するのに、要約が出てくるようにのみ変更されました。
これでも大体「映画レビュー」の文型を作りました。 ここまで進めても良いのですが、テストで各映画別にジャンルを追加してジャンル別に分類ページを作ってみようと思います。 これを行うには、Taxonomyと呼ばれるかなり不慣れな概念を理解して活用する必要があります。
Taxonomyに分類作成
WordPress Codexによると、Taxonomyは文をグループごとに結ぶ方式だと説明されています(ここ 注)。 カテゴリやタグに似た種類のいずれかで見ることができます。 タグも同様のタイプをひとつにまとめる機能をするもので、カテゴリも似ています。 ただし、ここでは新しい文型に新しい分類を追加しようとしているので、Taxonomyが適切です。 (Taxonomyは通常「分類」と翻訳されています。)
Taxonomy作成
WordPress ダッシュボードの CTP UIをクリックして、 分類の追加/編集を選択して、新しい分類を作成します。
私は「ジャンル」という分類を作りました。 ここに「アクション」、「メロ」、「ドラマ」…などのジャンルを追加する予定です。 ここで上の図に示すように Attach to Post Typeに「Movies」を選択します。 Taxonomyを作成したら、これを「Movies」文型で有効にする必要がありますか?
CTP UIの 投稿タイプの追加/編集に行き、「ムービー」編集画面の「Built-in Taxonomies」セクションに移動して、作成した分類を確認します。
Genre分類アーカイブの作成
上記で作成した「ジャンル」分類のアーカイブを作成します。 方法は上記と同じです。 今 archive-movie.phpの内容をそのまま活用しています。
- taxonomy-genre.phpファイル(空のファイル)を作成します。
- archive-movie.phpファイルの内容をコピーします。
- コピーした内容をtaxonomy-genre.phpファイルに貼り付けます。
- taxonomy-genre.phpファイルを変更します。
変更内容はほとんどなく一つだけ修正するようにします。 「book」== get_post_type()部分を次のコードに変更します。
is_tax('genre')
archive.phpファイルを変更せずにそのままarchive-moive.phpに使用した場合には、taxonomy-genre.phpファイルも変更する必要がありません。
Genre分類を個別記事/アーカイブに表示する
図のようにジャンル名を、個々の文やアーカイブに表示するには、次のコードを使用します。
<?php echo get_the_term_list( $wp_query->post->ID, 'genre', '', ', ', '' ); ?>
まとめ
以上で、すべてのプロセスが完了しました。 不十分な点がある場合は一つずつ修正しても行くとなるでしょう。 この記事は、 WordPress ユーザー定義の文タイプを使用して「北のレビュー」を作るの続編です。 事実、二人は同じ内容を扱っているが、この記事では、前回の記事で不十分な部分をタッチしたかった。 しかし、時間と能力が不足して詳細に説明していない簡単に移ったところが多いです。 もし知らない関数が出てきた場合、 WordPress Codex文書を検索して確認してみることをお勧めします。 よく理解できない部分がある場合はコメントで教えてください。
これはもう3年前なのに…もしかしたらまだ動作するのか気になります。 それとももっと良い方法ができました...
こんにちは?
WordPress ドキュメントを参照して作成したため、 WordPress 文書で内容が変更されていない正常に動作するようです。
ただ基本的な文のタイプを利用する場合は、
1。 レイアウトを正しく取って文を作成します。
2。 今後からは文の複製プラグインを使用して文を複製した後、内容を変更します。
このような方法も大丈夫そうです。 他の文との区別は、カテゴリにも可能よ。
文を複製する方法は、次の記事を参照してください。
https://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EA%B8%80%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A5%BC-%ED%81%B4%EB%A6%AD-%ED%95%9C-%EB%B2%88%EC%9C%BC%EB%A1%9C-%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0/
こんにちは。 上の例に沿ってしてもが少し問題を抱えてましたが。 テーマフォルダにsingle-movie.phpがアップロードができません。 新しく作成されたファイルは、すべてのアップロードがダメですね。 single.phpファイルは、テーマでダウンもされてアップロードもされます。 検索をしても答えを探してご連絡致します。 理由を知るのでしょうか。 SFTPはファイルBugzillaのをかぶって。 アマゾンライトセールbitnamiにインストールしました。
こんにちは?
single.phpファイルは、アップロードがしますが、single-movie.phpファイルがアップロードがないということは、正常ではないようです。
WordPressとは関係ないよ、サーバの設定に問題があるようです。
この場合、経験上ownership問題である可能性があります。
http所有者を探して正しく設定やらなくなります。
Ubuntuの場合、通常www-dataであるが、サーバーによって多少異なる場合があります。
たとえば、次のように所有権を割り当てることができます。
sudo chown -R www-data:www-data wordpress/
sudo usermod -a -G www-data www-data
私はUbuntuのワープをインストールするときに、上記同様に所有権を設定します。 ほとんどは特に問題がなく動作しました。
うまく解決にならない場合は、サーバー管理者やサーバーの専門家にお問い合わせください。
アマゾンライトセールが安価に仮想サーバーのホスティングを利用でき、いいが、サーバーを直接セットして運営しなければならない煩わしさがあります。 Linuxサーバの知識が不足すると、ストレスを多く受けることもあるでしょう。
こんにちは。 お知らせいただいたガイドに従ってたが
スマートフォンやタブレットでは見えません。
pcでよく実装された。 原因を知ることができますか?
こんにちは?
ブログを訪問していただきありがとうございます。
上記のコードは、モバイル/ PCかどうかにかかわらず、適用されるようです。
うまくいかない場合...
1)携帯電話でのブラウザの検索履歴/キャッシュを削除してください。
2)適用されたコードにこれまで携帯電話で非表示にするコードが適用されていないことを確認してみてください。
したがって、問題がうまく解決されることを願います。
楽しい一日を^^
こんにちは.....気になるものがあります...
カスタムフィールドはよく出てきます...
一般 post に書いた文は出てこないですね。
自分で書かなければならない部分ですが…この夫婦は普通の投稿で書くのではないでしょうか?
作成をしても。このコンテンツには、カスタムフィールド、フォームだけ出ますねㅠㅠ
上記の映画詳細は、postで直接作成するもされ、またはcustom fieldに別のフィールドを追加してもされています。 それピョンハシンに処理すればいいようです。
postで作成した文がない出るのはsingle postファイル(テーマによって異なります)でcontent部分が削除されていないことを確認しなければならないようです。