web-dev-qa-db-ja.com

ページごとのカスタムサイドバーウィジェット..可能ですか?

私は車に関するサイトをやっているとしましょう、そして(特定のテンプレートを使って)ページのメインコンテンツエリアには、特定の車に関するいくつかの段落があります。

サイドバーには、いくつかの標準的なウィジェットがあります。しかし、私はまた、特定の自動車についての「情報パネル」を備えたウィジェットが欲しいと思います。

それでは、Wordpressでページごとのウィジェットを入れる最も安全な方法は何ですか?理想的には、情報パネルはWordpressの標準的なページ編集を介して入力することができます。おそらくカスタムフィールドを介して入力することができます。 (またはこれはプラグインがすでにカバーしているものですか?)

3
cannyboy

ウィジェットを使用するのであれば Widget Logic Plugin が必要です。しかし、あなたが推測したように、これはこれをするための最良の方法ではありません。私はあなたがやりたいことを達成するための最善の方法はそれが正しいページ上にあることを検出した場合に投稿情報にアクセスするカスタムウィジェットを作成することであると思います。このようなもの:

global $wp_query;
$custom_data = get_post_meta( $wp_query->post->ID, 'your_custom_postmeta_key', true );
if( is_page() && !empty( $custom_data ) ){
  echo $before_widget . $before_title . $title . $after_title;
  echo apply_filters( 'the_content', $custom_data );
  echo $after_widget;
}

これを 通常のウィジェット構造 の中に貼り付けると、ページ上にあり、そのページにウィジェットに関連するメタコンテンツがある場合にのみ表示されるページごとのウィジェットを作成するのに非常に効果的です。その時点では、WordPressがすでにページ上で提供しているカスタムフィールドを使用してカスタムコンテンツを入力することができます。

2
John P Bloch

それを可能にするプラグインがいくつかあります。 contextual-widgets 例えば。他の方法は "page"/"post"テンプレート用に別のサイドバーを作成することです。

別の方法はsidebar.phpに "page"か "single"かをチェックし、もしそうなら "カスタム"フィールドに入力した情報を "印刷"する静的コードを入れることです。

2
hannit cohen

Widget Contexts Plugin For WordPress でウィジェットの表示をうまく制御できます。私はSemiologic Proのやり方が好きです。これは会員制のプラグインですので、それがあなたが探しているものであるかどうかはわかりません。

alt text

サイドバーのすべてのウィジェットに対して一連の表示オプションを提供します。

2
hakre

あなたはこれを使用することができます: http://wordpress.org/extend/plugins/per-page-widgets/ /

0
Thomas Jensen