WordPress ユーザー定義の文タイプを使用して「北のレビュー」を作る

  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

ワードプレスでは、基本的な文のタイプ(文、ページなど)のほか、ユーザー定義文のタイプ(Custom Post Type)を作成することができます。 例えば映画レビュー、音楽レビューなど特化したカテゴリーの記事を作成するのに便利です。 この記事では、「北のレビュー」文の種類を作成する方法を段階的に説明します。

最終的に次のような文の種類を作成することです。

Custom Post Type with Star Rating※参考までに、コーディング作業なしで不動産物件検索サイトや映画のレビューサイトを作成したい場合Toolsetプラグインを利用することができます

ワードプレスのカスタマイズ文のタイプを使用して「北のレビュー」サイトを作成する方法

計画

まず、「北のレビュー」にどのような項目が入るのかを考えてみます。 私は、次のような項目を北レビューに入れたいと思います。

  • 記事タイトル
  • 作家
  • 表紙画像
  • アマゾンURL
  • 書評

ここで、書評は本文の内容に置き換えとなりますので4のユーザーフィールドが必要です。

そしてarchiveページを作成するのかを決定する必要があります。 archiveページを作成一目瞭然に見ることができますので、archiveページを作成するします。 「book」文の種類を作る手順は以下のとおりです。

  1. 「book」のカスタマイズ文のタイプを設定します。
  2. カスタムフィールドを追加します。
  3. 文のテンプレートを作成します。
  4. 記事アーカイブ(Archive)を作成します。

ユーザー定義の文タイプの作成

ユーザー定義文のタイプ(Custom Post Type)は、 WordPress 古写本を参考に手動で作成することもできるが、ここでは、管理しやすいようにプラグインを使用するようにします。

カスタムポストタイプのUIというプラグインをインストールするようにします。 有効にすると、ダッシュボードにCPT UIというメニューが追加されます。 投稿タイプの追加/編集をクリックして、新しい文のタイプを作成します。

Create a custom post type using CPT

適切に入力するようにします。 ここで "Has Archive"部分は、以下のように入力します。
Has Archive in CPT

「Save Post Type」を押すと、「Book」ユーザー定義文のタイプが作成され、更新すると、次のガトイン「北のレビュー」メニューがダッシュボードに追加されます。
Book Review Post Type in Dashboard

オホーツクは、すでに完了した取引のような感じがします。 しかし、まだ長い道のりがこと...この状態で「北のレビュー」で、新しい記事を作成してみると、一般文と同じように表示されます。 次に、あえて苦労新しい記事タイプを作成する必要がないでしょう? 続いて進めていきます。

ユーザー定義フィールドの作成

さて、先ほど作成した「book」という文のタイプに使用するカスタムフィールドを追加するようにします。 同様に、手動での作成が可能ですが、ここでは 高度なカスタムフィールドというプラグインを使用して、カスタムフィールドを作成いたします。 このプラグインをインストールして有効にすると、ダッシュボードに「Custom Fields」が生成されます。 カスタムフィールドフィールドグループを作成し、次のようにカスタムフィールドを作成します。
Create Custom Fields in WordPress
ここでCustom Fieldsを北レビューのみ表示されるように、次のような場所(Location)を指定できます。
Location Custom Fields will be assigned to
そして注意すべき点は、カバーを「Image Field Type」で作ったが、Return Value "をImage Object」にせずに、「Image URL」に設定して与えるようにします。 そうでなければ、画像が正しく表示されない問題が発生します。
Add image custom field in WordPress カスタムフィールド

今記事作成画面に追加したユーザー定義のフィールドが追加されています。
Added Custom Fields to Custom Post Type

この状態で、新しい記事を作成して発行しても、通常の文章で文章を作成したと別段異なることはありません。 続いて、この文の種類のテンプレートとArchiveテンプレートを作成します。

文テンプレートの作成

ユーザー文のタイプの文のテンプレートの名前は、single- {post_type} .phpで指定する必要があります。 この例では、「single-book.php "ファイルを作成するようにします。 single-book.phpファイルを作成しsingle.phpファイルの内容をすべてコピーして挿入します。 そして適切修正をするようにします。 テストでは、Twenty Thirteenテーマを使用していました。 single.phpファイルで<?php get_template_part( 'content'、get_post_format()); ?>の部分をcontent.phpファイルの内容に変え修正をしました。 そうではなくcontent.phpで「book」文のタイプに該当する部分を追加するように修正してもされます。 (このような内容は、テーマごとに異なりますので、この作業のためにはテーマファイルの分析が必要です。)single-book.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('author'); ?></td>
  </tr>
  <tr>
    <td><strong>URL:</strong></td>
    <td><a href="<?php the_field('amazon'); ?>" target="_blank">Click</a></td>
  </tr>
  <tr>
    <td><strong>커버:</strong></td>
    <td><img src="<?php the_field('cover'); ?>" alt="" /></td>
  </tr>
  
</table>

ユーザーフィールドの内容をテーマファイルに追加する方法は、 次の記事を参照してください。

コードを適用してみると次のように、個々の文が表示されます。

Book Review  -  Crime and Punishment  -  WordPress

これは「罪と罰」の内容ですね。 幼いときに非常に感銘よう読んだ本の一つです。

もう最後に「book」文の種類のアーカイブページを作成する方法を説明します。

アーカイブテンプレートの作成

アーカイブテンプレートファイルの名前は、archive- {post_type} .php形式が必要です。 したがって、「archive-book.php "ファイルを作成するようにします。 そしてarchive.phpファイルの内容をそのままコピーして貼り付けようにします。 そして、状況に応じて適切に変更します。 Twenty Thirteenテーマの場合文の内容が全体的に出て見るが良くなくて要約文(Excerpt)が出るように少し修正をしてみました。 このとき条件に次のコードを使用します。

if ( 'book' == get_post_type() )

WordPress 説明によると、is_singular(「book」)の形が合うようだが、不思議正常に動作しない、上記のコードを使用したら正常に動作しますね。 アーカイブページのリンクは、http://ブログ_アドレス/ book /になります。 Twenty Thirteenテーマでアーカイブページを少し変更して、CSSを調整すると、:
Book Review Custom Post Type in WordPress

アーカイブテンプレートの変更もテーマに依存しており、若干のPHPの知識が必要です。

そしてメニューもアーカイブページを追加すると、良いでしょう? ルックス>メニューで「ユーザー定義のリンク "として追加してくれれば、新たに作成された「北のレビュー」が完成します。
カスタムリンク

追加:Taxonomyを使用して分類を作成し

ユーザーTaxonomy追加する

上記の手順で「book」文の種類が一通り完了しました。 ここカテゴリー機能についてしばらく論じたいと思います。 記事に使用されているカテゴリをそれでもユーザー定義文のタイプにも使用が可能です。 しかし、実際にはカテゴリーリンクをクリックしてみると文がないと出てくるのです。 これを解決するには、categoryファイルの適切な場所 if( 'book' == get_post_type()) 条件文を追加して、問題を解決することができます。 この方法の代わりに、ユーザー定義の分類(Taxonomy)を作成し、「北のレビュー」のカテゴリに活用することができます。

このため、 CTP UI分類の追加/編集を選択して、新しい分類を作成するようです。
New Taxonomy attached to the custom post type
情報を適当に記入し Attach to Post Typeに上記で作成し文の種類をチェックするようにします。

そして 投稿タイプの追加/編集に移動し、上記で作成し文の種類(book)の情報のいずれかを変更します。 "Built-in Taxonomies"で作成した分類のみをチェックするようにします。
Built in Taxonomies

ユーザー分類リンクを追加する

上記のように処理した場合、作成した分類が「北のレビュー」の下に追加されていることです。
Book Genre

個別の記事では、分類の情報が表示されるようにするには、次のようなコードを該当する場所に追加するようにします。

<?php echo get_the_term_list( $wp_query->post->ID, 'bookreview', '', ', ', '' ); ?>

たとえば、次のように記事本文のすぐ上には、分類情報を表示してクリックすると、その分類のArchiveページに移動できるようにすることができます。
Taxonomy Link

ユーザー定義の分類アーカイブの作成

「北のレビュー "文の種類に「文タイプ」の分類を追加しました。 これで、この「文タイプ」の分類をカテゴリページのように使用するためのArchiveページを作成させます。 アーカイブの名前はtaxonomy- {taxonomy_name} .php形が必要です。 この場合には、taxonomy-bookreview.phpという名前のファイルを作成し上記の作業していた "archive-book.php"ファイルの内容をコピーして貼り付けます。 そして 「book」== get_post_type()の部分はis_tax(「bookreview」)に変更ししてくれるようです。 その後、同じ形のアーカイブテンプレートが完成します。

おわりに

以上でユーザー定義文のタイプを作成する方法を、例えば簡単に説明しました。 可能な簡単に説明すると努力したが、この部分が本来の初心者がついてするには容易ではないことがあります。 特に文のテンプレートとアーカイブテンプレートの場合PHPの知識とCSSの知識が必要になることができます。 もし説明が不十分な部分がある場合はお知らせください。 この方法を使用して、「映画レビュー」、「クラシック音楽レビュー "...など、さまざまな応用が可能になります。

付録:星評価を追加する

次の図のように星評価を追加することができます。

Custom Post Type with Star Rating

星評価を追加するには、Advanced Custom Fieldsで数字の入力を受けるカスタムフィールドを一つ作成します。

Add a custom field with number

今適当な別の画像を入手するようにします。 3つの星の種類が必要になります:オンビョル、班別、そして空の星。 それぞれの名前をstar.png、half.png、blank.pngといえば、single-book.phpファイルに次のコードを追加するようにします。

<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.example.com/star.png" />';
}
if (strpos($starNumber,'.')) {
echo '<img src="http://www.example.com/half.png" />';
$x++;
}
while ($x<=5) {
echo '<img src="http://www.example.com/blank.png" />';
$x++;
}
echo '(';
the_field('rating');
echo ')';
}
?></td>
</tr>

その後、上記の図のように星評価が追加されます。

参考



コメントを残す