web-dev-qa-db-ja.com

カスタムページテンプレートへのコンテンツ領域の追加

私はこれを尋ねる方法がわからない、それは私がグーグル検索で何かを見つけるのに苦労してきた理由である。誰かが私が探しているものを理解し、それを実装する方法についての情報に私を導くことができるようになることを願っています。

私はカスタムテーマに取り組んでいます。私がやりたいことは私のテンプレートページにあり、クライアントがテキストを追加できるいくつかの領域です。各地域は異なる部門になります。管理者編集ページで、テンプレートページが選択されると、クライアントが各divのコンテンツを追加するためのフィールドがあります。

<div id="div1">
   Content brought in by admin
</div>
<div id="div2">
   Content brought in by admin
</div>
<div id="div3">
   Content brought in by admin
</div>

コンテンツを表示するのではなく、管理者編集ページでこれを行いたいと思います。

テンプレートでは:

<?php the_content(); ?>

Functions.phpのいくつかの魔法と組み合わせて、管理編集ページで編集するフィールドを作成するものを複数作成する方法はありますか?

私がこれを手助けしてくれたあなたの時間に感謝します。もっと情報が必要な場合は私に教えてください。私はただ方向を探しています、私は自分でこれを理解しようとしました、しかし、私の検索は関連する何も持って来ないので私は正しい言語を使っていないと思います。

2
JHP

Advanced Custom Fields pluginを使用しました。例を使用して、ホームページに3つのセクションを作成します。まずACFプラグインをインストールしてください。次に、カスタムフィールドを作成してホームページテンプレートに追加します。設定領域では、各フィールドに特定のタイトルを付けます。それからあなたのホームページテンプレートでは、このようなものを書くでしょう:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div class="container">

        <div class="home1">
            <p><?php the_content(); ?></p>
        </div>

        <div class="home2">
            <?php the_field( 'home2-custom-field' ); ?>
            <p><?php the_content(); ?></p>
        </div>

        <div class="home3">
            <?php the_field( 'home3-custom-field' ); ?>
            <p><?php the_content(); ?></p>
        </div>

    </div>
<?php endwhile; endif; ?>

.home1がデフォルトのWordPressコンテンツエディタ領域になり、.home2.home3が2つの新しいACFになります。 the_field()は特定のカスタムコンテンツを取得して取得し、通常どおりthe_content()を使って表示します。私はWordPressのテーマ開発が初めてなので、これが最善の方法であることを100%とは思っていません。 :)

2
Finn

ご協力ありがとうございます。ホームページセクションに投稿カテゴリを使用して、別のルートに進むことにしました。それは私がやりたいことではありませんが、私が探していた最終結果を達成するための最も便利な方法のように思えました。テンプレートページエディタを更新して3つのセクションを追加するという最初の目標を達成するのに成功した場合ほど簡単ではありませんが、クライアントにとっては更新が簡単です。私はまだそれに取り組むつもりです、そして、あなたの情報は私が始められるようにするのでありがとうございます。

それまでは、テンプレートページの各投稿カテゴリに電話をかけています。私は以下のコードを使用しています、それが嵩張らないようにコードを微調整する方法があると確信しています。 (あなたがいくつかの提案があれば私を教育すること自由に感じなさい)

どちらの方法でもうまくいくようです。

<!--Header Home Part One-->
<div class="home1">
<?php
$my_query = new WP_Query( 'cat=9' );
$args = array( 'posts_per_page' => 1 );
if ( $my_query->have_posts() ) { 
while ( $my_query->have_posts() ) { 
    $my_query->the_post();
}
}
?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(); ?>
<?php wp_reset_postdata(); ?>
<!--/home1--></div>
<!--Header Home Part two-->
<div class="home2">
<?php
$my_query = new WP_Query( 'cat=10' );
$args = array( 'posts_per_page' => 1 );
if ( $my_query->have_posts() ) { 
while ( $my_query->have_posts() ) { 
    $my_query->the_post();
}
}
?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(); ?>
<?php wp_reset_postdata(); ?>
<!--/home2--></div>
<!--Header Home Part Three-->
<div class="home3">
<?php
$my_query = new WP_Query( 'cat=11' );
$args = array( 'posts_per_page' => 1 );
if ( $my_query->have_posts() ) { 
while ( $my_query->have_posts() ) { 
    $my_query->the_post();
}
}
?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(); ?>
<?php wp_reset_postdata(); ?>
<!--/home3--></div>

上記のコードがより良く書かれることができると思うならば、もう一度ありがとう、そして私を教育することを躊躇しないでください。私は行って、すべての助けに感謝しながら学んでいます!

2
JHP

私は二度目のHowdy_McGee提案をします。カスタムテンプレートの作成を考え始める前に、 ループ を理解する必要があります。テーマを掘り下げる前に、問題に対する簡単な解決策を探してください。

0
icicleking