web-dev-qa-db-ja.com

WordPress=ページ内に異なる編集可能なセクションを作成するにはどうすればよいですか?

私はWordPress=で最初のテーマを構築しており、異なるセクションにコンテンツを追加する際に問題に遭遇しました。

私のHTMLはこのようなものです。

<div id="maintext">
   <-- Text -->
</div>
<div id="products">
   <-- Text and Images -->
</div>
<div id="about_company">
   <-- Text boxes -->
</div>

WordPressエディターで追加されたコンテンツがそれぞれのdivに該当することを確認するにはどうすればよいですか? "maintext" divの場合、ページ自体からコンテンツを読み込みますが、どのようにコンテンツを追加しますか他の2つのdivは動的に?

いくつかのフォーラムで検索しましたが、ウィジェットを使用してコンテンツを追加することを提案する人が多くいましたが、ウィジェットを使用せずにコンテンツを追加する方法はありますか?

どんな助けも喜んで感謝されます。

45
Vinith Almeida

残念ながら、1つのページに複数の編集可能なフィールドを追加することは、WordPressを単独で使用すると特に簡単ではありません。

多くのWP私が知っている開発者(自分自身を含む)は、追加のコンテンツフィールドについて Advanced Custom Fields Plugin に依存しています。

これを実現する手順:

1)ACFプラグを取り付けます。
2)ACFの設定領域で、いくつかの新しいフィールドを作成します。
3)特定のページまたはページのセットに表示される新しいフィールドを割り当てます。
4)指定されたページのページテンプレートを更新して、新しいフィールドが表示されるようにします。

たとえば、標準のwysiwygフィールドのセットを作成し、それらを「概要」ページに割り当てることができます。これらのフィールドをmain_text、products_info、about_companyと呼びましょう。フィールドを作成してページに割り当てたら、そのページを編集すると、追加のフィールドを編集できるようになります。

これらの新しいフィールドを訪問者が見るには、概要ページに使用するページテンプレートに追加する必要があります。コードは次のようになります。

<div id="maintext">
   <!-- Text -->
   <?php if(get_field('main_text')){ //if the field is not empty
        echo '<p>' . get_field('main_text') . '</p>'; //display it
    } ?>
</div>
<div id="products">
   <!-- Text and Images -->
   <?php if(get_field('products_info')){ //if the field is not empty
        echo '<p>' . get_field('products_info') . '</p>'; //display it
    } ?>
</div>
<div id="about_company">
   <!-- Text boxes -->
   <?php if(get_field('about_company')){ //if the field is not empty
        echo '<p>' . get_field('about_company') . '</p>'; //display it
    } ?>
</div>

多くの良い ここに例があります があります。プラグインをインストールするのではなく、非常に意欲的な場合は、ACF テーマに直接 を含めることもできます。

77
metaColin

私が信じる3つのオプションがあります:

  1. テキストウィジェットでコンテンツを表示できるウィジェット領域を作成します。 http://codex.wordpress.org/Function_Reference/register_sidebar
  2. 次に、別のページのコンテンツを取得するテンプレートを作成します。 http://codex.wordpress.org/Page_Templates#File_Folders
  3. すべてのページに新しいメタボックスを作成します。 http://codex.wordpress.org/Function_Reference/add_meta_box

探しているのはオプション2であると思います。他のコンテンツは、すべてのページに追加コンテンツを表示したい場合、よりフルサイト指向です。

7
user2019515
<div id="maintext">
   <?php the_content(); ?>
</div>
<div id="products">
   <?php // echo wp function to get product data; ?>
</div>
<div id="about_company">
   <?php // echo wp function to get about companydata; ?>
</div>
2
Manish

テーマを作成している場合は、最初から始める必要がないように、WordPress Frameworkを使用することを検討してください。

そうでない場合は、エンドユーザーについて考えてください。彼らはどのようにページや投稿にセクションを追加しますか? WordPress UI内の場所を移動する必要がありますか、それとも短いコードを使用しますか?

ドキュメントコンテンツ内のセクションをレンダリングするプラグインを作成することをお勧めします。または、ウィジェットコンテンツが該当する場合。

私はあなたがそのようなことをどのように達成できるかを説明するために少しのコードを書きました。 githubで見つけることができます https://github.com/lionpage/Front-Office-Document-Sections

お役に立てれば

2
Page Carbajal

これに苦労し、プラグインを使いたくありませんでした。唯一のWordPress=私が見つけたネイティブオプションは、 カスタムフィールド を使用することでした。

他の非プラグインオプションは、WordPressエディターでHTMLを使用するだけですが、これはもちろん理想とはほど遠いものです。

最後に私はあきらめ、Advanced Custom Fieldsプラグインも選択しました。

0
kregus

私はこの問題に何度か遭遇しましたが、質問は3歳ですが、まだかなり新しいと思います。ときどき、複数コンテンツブロックプラグインを使用することに成功しました。

https://ltz.wordpress.org/plugins/multiple-content-blocks/

プラグインをインストールした後、the_blockテンプレート内:

<div id="maintext">
   <?php the_content(); ?>
</div>
<div id="products">
   <?php the_block('products') ?>
</div>
<div id="about_company">
   <?php the_block('company') ?>
</div>
0

hi imは現在、そのセットアップでテーマを開発しています。これを実現する方法は2つあります。

ウィジェット化および修正された管理パネル(カスタマイザーオプション)

ウィジェットがウィジェットセクションを含む.phpファイルを作成し、そのセクションのウィジェットを作成する場合、テーマで2つを使用しています

管理パネルで修正する場合は、functions.phpに.phpセクションを含める必要があります

編集*ウィジェット化の利点は、通常のサイドバーのように配置できることです。

0
delbrosit