0

私はWordPressサイトで働いています。

AJAX メソッドを使用して、現在開いているページに検索結果を読み込みたい。そのためには、新しいページを開かずに、検索を実行する PHP コードの出力を取得する必要があります。

通常、検索語を入力すると、WordPress は次のような URL の新しいページを開きます。

mydomain.com/?s=検索ワード

検索を行う PHP コードの出力は、そのページの #container div に表示されます。

質問: 新しいページを開かずに検索結果を取得し、jQuery を使用して現在開いているページに検索結果を読み込むにはどうすればよいですか?

アドバイスをいただければ幸いです。

4

1 に答える 1

2

このプラグインは、ほとんどあなたのためにそれを行います。プラグインのソース コードを見て、それを自分で活用する方法を確認してください。

http://wordpress.org/extend/plugins/threewp-ajax-search/screenshots/

自分で検索ページを呼び出して #container 値を解析し、結果リストを自分で解析することもできると思います。それについて助けが必要な場合は、私に知らせてください。それ以外の場合は、既に開発されているプラ​​グインがかなり便利だと思います。

ここで要求されたように、私がこれをどのように行うことができると思うかについて、いくつかの考えがあります。これはどれもテスターではありませんが、一般的なアイデアは健全です。インストールに合わせて、必要に応じて微調整する必要があります。たとえば、Get と Post です。タイムアウト。リクエストデータ。

  1. jQuery の ajax 呼び出しを使用して、検索ページをリクエストします。

    $.ajax({
                    async: true,
                    data: $dataToSend,
                    datatype: 'xml',
                    beforeSend: function() {
                        console.log('rq');
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.log('error');
                    },
                    success: function(xml, textstatus, jqXHR) {
                        //Process Response Data
                    },          
                    timeout: 10000,
                    type: 'POST',
                    url: 'http://' + document.location.host + '/search'     
            });
    
  2. 応答を処理し、関心のあるデータを選別します。 http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery

    $(xml).find('div[class="post"]').each( function() { $("#currentPage").append($(this) + "
    "); });

SO は、そのリスト ビットのコード ブロックを拒否します。申し訳ありません。

于 2011-07-14T17:14:03.103 に答える