web-dev-qa-db-ja.com

カスタムブログページテンプレートを正しい方法で作成する

ブログ記事のプレゼンテーション用に新しいカスタムページテンプレートを作成したいです。 Settings> Reading を使って投稿を表示するページを割り当てると、そのページのコンテンツを表示する home.php というページ上の投稿に割り当てられます。ページ編集ビューでページテンプレートを割り当てるオプションも消えます。

今のところ、記事ごとのデフォルト記事が表示されています。私は、グリッドを格子状または石積みのレイアウトでスタイル設定できる別のテンプレートを選択するための、管理者用の別のオプションを提供したいと思います。私はどうやってこれをするかわからない。

設定>閲覧 管理領域でブログを表示するページを 割り当てない で割り当て、次に管理ユーザーが ページ属性 を使用してページに特定のテンプレートを割り当てることができます。ページの編集は https://make.wordpress.org/themes/2014/06/28/correct-handling-of-static-front-page-and-custom-blog-posts-index-template/ これは間違った方法です

私は解決策をグーグル検索してみましたが、私が見つけ続けるのは使用するプラグインのための推奨事項だけです。誰かが私に役立つリソースを教えてもらえますか?

5
Ryan Coolwebs

Wordpressが主にブログ用CMSとして設計されていることを忘れないでください。テーマ開発に関しては、開発者はより多くの機能の可能性と引き換えに非標準のアプローチを選ぶことがよくあります。

テーマ開発者がこれに近づくときには3つの選択肢がありますが、そのうちの1つ(下記の#2)について説明しました。

  1. ブログのインデックスを変更するには、index.phpを直接編集します。テンプレートの他の部分が欠落している場合には、index.phpが代替になるはずなので、これは適切なオプションではありません。

    • 長所:早くて簡単
    • 短所:エラーが発生しやすく、オブジェクト指向の原則に反する
  2. ブログインデックス用のページテンプレートを作成します。あなたが言ったように、多くのテーマ開発者はこの方法を選ぶことを選択します。なぜならそれはあなたがブログインデックスを制御する速い方法であり、そしてそれは実際あなたに異なるブログインデックステンプレートで遊ぶ能力を与えます。 ).

    • 長所:汎用性、堅牢なテーマを構築することができます
    • 短所:ブログインデックスに関連するWordpressのネイティブ機能を呼び出すことができなくなります。
  3. テーマにfront-page.phphome.phpindex.phpを作成します。 front-pageはテーマのホームページになります。 homeはデフォルトでブログのインデックスになり、indexはすべてのテンプレートの代替になります。

    • 長所:Wordpressのネイティブオブジェクトとメソッドをクリーンにしてフルに活用する
    • 短所:Wordpressによる制限:今日見られるオプションが豊富なテーマの多くには理想的ではありません

個人的には#2を使用したいと思います。最近のほとんどのWordpress開発プロジェクトは単なるブログではないため、深いアーキテクチャと複雑な対話性を備えたサイト全体です。

3
Orun

私の答えではいくつかの拠点をカバーするつもりです。 :)

あなたがあなた自身のテーマを作成していて、いくつかのタイプのページ(例えばカテゴリーアーカイブページ、または単一のブログ投稿ページ)のデフォルト表示を変えたいなら、WordPressテンプレート階層の 図をチェックしてください 。テーマディレクトリのどのファイルがどのタイプの投稿を表示するのに使用されているかを示します。

その階層のファイルと一致するあなたのテーマのphpファイルを持つことによって、それはWordPressによって自動的に使用されます - 単一の投稿を表示するためのsingle.phpのように。そのファイルがすでにそこにあるテーマがある場合は、明らかにファイルを変更でき、それがサイトに反映されます。

別に、もしあなたがカスタムページテンプレートを持ちたいが管理者だけがそれらを変更することができるようにしたいのであれば、あなたは役割と能力のいくつかのチェックをする必要があります。 このStackExchangeの回答 が役に立つかもしれません。 (あなたはまだそれらのカスタムページテンプレートを作成する必要があるでしょう、 このSmashing Magazineの記事 を見てください)。

それ以外の場合、管理者が特定の基準に基づいてよりグローバルにページ/投稿テンプレートを選択する場合、またはサイト全体のカスタムページテンプレートを選択する場合は、テーマに管理領域オプションを追加する必要があります。そのオプションに基づいて適切なページを表示するようにテーマにコーディングします。管理領域にオプションを追加することは多くのプラグインの1つで簡単に行われますが手動でも行うことができます(例えば、 SitePointのこの記事 を見てください)。

0
iguanarama

ブログの投稿を表示するための独自のテンプレートページを作成するということですね。

次に、この方法でblog-template.phpという名前のphpファイルを作成します

そのファイル内では、このコードをあらゆるものの上に置きます。

<?php 
/*
* Template Name: Blog Post
*/
?>

次に、上記のコードの下で、index.php/home.phpページのすべてのコードをこの上のページに配置し、ファイルを保存して、dashboardからページを作成します。たとえば、そのページの名前は"Blog"テンプレートのドロップダウンからchose page templateとして作成したばかりの右側Blog Postから。

ページを公開すると、投稿を表示するための独自のページを用意することができます。

他に何か必要なことがあれば教えてください。

0
Akram ul haq