web-dev-qa-db-ja.com

特定のページに特定のフッターウィジェットを表示する

このコードで新しいフッターウィジェットを登録しました。

register_sidebar(array(
  'name' => esc_html__( 'Footer Sidebarprestige', 'realtor' ),
  'id' => 'footer-sidebarprestige',
  'description' => esc_html__( 'Widgets in this area will be shown in Footer Area.', 'realtor' ),
  'class'=>'',
  'before_widget'=>'<li id="%1$s"  class="col-md-3 col-sm-6 widget %2$s">',
  'after_widget'=>'</li>',
  'before_title' => '<h5>',
  'after_title' => '</h5>'
));

私はこのようにfooter.phpファイルでそれを呼び出しました:

<ul class="row">

   <?php dynamic_sidebar('footer-sidebar'); ?>

 </ul>

  <ul class="row">

   <?php dynamic_sidebar('footer-sidebarprestige'); ?>

 </ul>

'footer-sidebar'はオリジナルのウィジェットで、 'footer-sidebarprestige'は私が追加したものです。私が追加したウィジェット領域にウィジェットを追加した場合の方法は、元のウィジェットの下に表示され、その理由は理解できます。

私がやろうとしていること。特定のページIDに対してのみ追加したウィジェット領域を呼び出します。基本的には、呼び出されたページIDにのみ新しく作成されたフッターウィジェットを表示し、元のウィジェット領域を表示しません。

2
Joe

これを実現する方法はいくつかあります。

A. CSSを使用して、自分がどのページにいるのかに基づいてウィジェットを非表示にしたり表示したりします。これは回避策としては問題ありませんが、特に多数のページ/ウィジェットがある場合は特に問題は解決しません。

B.条件付きロジックを使用してテンプレートファイル内の別のウィジェット領域を呼び出す

<ul class="row">
   <?php if(is_page('my-page')){
      dynamic_sidebar('footer-sidebarprestige');
   } ?> 
</ul>

C. Widget Logic のようなプラグインを使用して、ウィジェット自体に条件付きロジックを使用します。その後、ウィジェットをウィジェットごとに表示するためのis_page('my-page')のような条件を追加できます。

2
Pim

私が理解していることはあなたが特定のページにウィジェットを表示したいということですね。あなたはそれのためにプラグインを使うことができます: https://wordpress.org/plugins/widget-context/ /

0
Remzi Cavdar

以下のコードでそれを考え出しました:

<ul class="row">

   <?php if ( is_page( 1111 )) : ?>
   <?php dynamic_sidebar('footer-sidebarprestige'); ?>
   <?php else :?>
   <?php dynamic_sidebar('footer-sidebar'); ?>
   <?php endif; ?>

  </ul>

Pimありがとう、あなたは私の答えを得るために正しい道に私を送った

0
Joe