web-dev-qa-db-ja.com

メインコンテンツコンテンツの高さが設定量を超えている場合にdynamic_sidebarを表示する方法

私は私のメインコンテンツ領域の高さがある量より大きい場合にのみ表示されるテーマのsidebar.phpに2番目のdynamic_sidebarを追加しようとしています。もし私がjQueryとphpの魔法のハイブリッドを持っていて、そしてメインコンテンツエリア(#content)が700pxより高いならば、私はこれが起こることを望みました。

 if ( jQuery('#header-wrap').height() > 700 ) {
     dynamic_sidebar( 'sidebar-extra' );
 }

これは本当のphgを使って可能ですか?私はその条件付きの中でjQuery hide()を使うことができることを知っています、しかし私がそうしなければならないなら私はむしろサイドバーをロードして、私のレイアウトを台無しにしたくないです。

1
JPollock

「jQueryとphpの魔法のハイブリッド」は、少なくともこの場合は「AJAX」と呼ばれます。条件付きでサーバーに別の要求を出すには、Javascriptを使用する必要があります。 PHPはサーバー上で実行されるため、ページの高さはわかりません。 Javascriptはブラウザ内で実行され、ウィンドウの高さを計算することはできますが、PHPを直接実行することはできません。唯一の選択はAJAXです。

WordPressには AJAX API があり、これによってAJAX要求が非常に簡単になります。 CodexにはAJAX AP​​Iを使用するための例がたくさんあり、それについてもここにたくさんの質問があります。始めましょう。問題がある場合は、具体的に質問を編集してください。

2
s_ha_dum