2011-02-01 7 views
0

のトラブルだから、私はhere's:AJAXナビゲーション - パーマリンク

私は上の要素とを動かし、ユーザーによるドラッグ、その上にものがたくさんで机に似blogthemeをプログラムします。ブログの主要部分は、ページめくりとページめくりを使って閲覧できるカテゴリの中に配置されています。

ユーザーに彼/彼女が実際に「ブック」を使用している印象を与えるためには、私が最初の場所で複雑な構造を使用(心配はほとんどpagemarkersの場所):

  1. すべてのカテゴリでは、独自のテンプレートを使用しています(カテゴリ4.phpなど、カテゴリ5.php、)
  2. single.phpは(alltogether 6つのカテゴリ)のカテゴリに敏感なテンプレートにつながる

私が終わったとき、私はあまりにもあったことが判明グラフィカル要素がクリックごとに再読み込みされるたびに発生するトラフィックページは信じられないほど遅かった。だから、私はAJAXソリューションを考え、ezjax-solution(http://www.fluidbyte.net/index.php?view=simple-ajax-content-changer-with-ezjax)を使用しました。これは基本的には、 index.phpの特定のdiv内のあるクラスの負荷を持つすべてのhref。リンクの内容がdivに読み込まれると、他のテンプレートファイルのインタラクティブバックグラウンドのコード(そしてこのようなトラフィック)をこの方法で保存します。

実行中のページhereを確認して、ナビゲーションの仕組みを確認できます。

私が望んでいたが、それはまだいくつかのトラブルの原因を正確に何を基本的にthat's:例えば、単一の記事、カテゴリ、のテンプレートファイルとして

  1. パーマリンクを実際に使用することはできません。実際に行うことはできますが、ページの半分のように見えます(http://www.palimpsest.eu/2011/02/01/differenzierung/)。訪問者がコンテンツに対して「通常の」視点を得ることは明らかに重要です。

  2. 何らかの理由で、投稿のID(SexybookmarksやFlattrのような)に接続する必要のあるプラグインが動作しない場合があります。私はその理由が1.問題に関連していると思います。今ここに

私のアプローチがあると私はあなたが最もよく取る(または多分問題を解決する他の方法についていくつかのインスピレーションを与える)することを検討している1お聞きしたいと思います:

  1. 引き起こしsingle.phpは、インラインでブラウジングするのか、外部サイトから来るのかを尋ねて、2つの異なるテンプレート(短いものとすべてのグラフィカルな内容のもの)につながります。この場合、私はsingle.phpをあなたが来る場所から実現させる方法を知らない。

  2. 私はAJAXed Wordpressの使用について考えましたが、私のニーズに合っているかどうかはわかりません。私はまた、ナビゲーションモジュールに関する多くのドキュメントを見ていません。

  3. 一時的なインターネットファイルに既に含まれているコンテンツをリフレッシュしないその他の方法。

この問題に対処する方法については、本当に感謝しています。

敬具、 ララ

答えて

3

ようこそSOへ。私は正確に何をしようとしているのか分かりませんが、WPでのみコンテンツのAJAXリクエストの通常のジレンマがあります: クリックすると、いつものようにページを読み込みます。しかし、同じリンクを使用してAJAX経由で同じページを読み込み、レイアウトをロードしたくない場合もあります。

これはあなたの問題の核心であると仮定すると、ここで私は通常これを処理する方法は次のとおりです。

// functions.php 
function is_ajax_request() { 
    return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && 
      strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
} 


// e.g. in index.php or any other template file: 
<?php if (!is_ajax_request()) { get_header(); } ?> 

// ... Rest of your template ... 

<?php if (!is_ajax_request()) { get_footer(); } ?> 

テンプレートファイルは、AJAXを介して要求されている場合のみ、このコンテンツがロードされるように、そうでない場合は、ページのロードだけいつものように。

が、これはあなたを助け、あるいはあなたが後にしているものをもう少し説明している場合、私に教えてください。 そして、私は、ここの周りの人々があまりにも長い質問から逃れることに気づいた。だから、 - 短く、より良い;)

+0

Polarblauねえ、あなたの答えのため 感謝。私はコードを正しく取得する場合私は2つのコードをテンプレートに入れます:ケース1(AJAX:<?php if(!is_ajax_request()){}?>)とケース2(normal Link:<?php else {}>)? – Lara

+0

そして、あまりにも長くしてしまって申し訳ありませんが、残念ながら私は問題をそれよりも短くすることができませんでしたので、構造化することで問題を解決できませんでした;) プラグインの問題は何ですか?投稿IDを取得するには? – Lara

+0

これはAJAXを使用しない* * *のページを要求した場合にのみヘッダー(すべてのCSS/JSなどを含む)をレンダリングします。通常はAJAXを使用する際にプレーンな内容を取得することを意味します。あなたはすでにページ上に残りの部分(ナビゲーション、スタイル、ヘッダーなど)をすべて持っています。テンプレートで 'get_header()'を使うのではなく、 'if(!is_ajax_request()){get_header(); } '。 'else'は必要ありません。 – polarblau

関連する問題