0

ユーザーがリンクをクリックした後、現在のページ内の対応するページをロードしたいと思います。このajaxpageは、非ajaxページとは異なるテーマにする必要があります。

ページは、クライアントによってさまざまな言語で追加されます。したがって、固定IDはなく、クライアントは同じ記事を2回追加しないでください(通常の場合は1つ、ajaxの場合は1つ)。このルールは、テンプレートを手動で上書きします。

最初の部分、コンテンツのajaxロードは簡単ですが、さまざまな方法でコンテンツを表示する方法がわかりません。

それで

domain.com/product/car直接訪問では、ヘッダーとフッターを含むテンプレートとしてsingle-product.phpを使用する製品(車)が表示されます。

ajax load domain.com/product/carは、製品(car)を表示しますが、ヘッダーとフッターがなく、レイアウトが少し変更されている可能性があります。

私の最初の考えは、いくつかのテンプレートを動的に設定することでした(template-product-ajax.php)が、これが可能かどうか、またはどのように行うかはわかりません。

つまり、WordPressでajaxを使用してページをロードするときに、別のテンプレート/レイアウト/ビューを作成するにはどうすればよいですか?

4

1 に答える 1

1

ロードするページ/投稿ID、ロードしようとしているオブジェクトの種類(「ページ」または「投稿」)、ブール値など、一連の変数を渡して、標準を確保する必要があります。 get_header()関数はロードされません(ヘッダーではなく、ページのコンテンツのみが必要なため)。

テンプレート内のどこかで、そのブール値を使用してテンプレートの動作を判別できます。例えば:

<?php
/*Template Name: AJAX Content*/
if(!isset($_POST['bool']))
    get_header();
?>
<div id="body">
    <div class="page_content">
    <?php
        if(isset($_POST['bool']))
        {
            $object = $_POST['ob_type'] == 'page' ? get_page($_POST['PID']) : get_post($_POST['PID']);
            echo $object->post_content;
            /*echo '<pre>';var_dump($object);echo '</pre>';//Uncomment this section if you want to know what you can access with variable $object*/
        {
        else
        {
            //STANDARD LOOP
        }
    ?>
    </div>
</div>

これはテストされていませんが、AJAX呼び出しと、POSTデータを別のページに送信することに既に精通している場合は、開始するのに役立つはずです。

于 2012-04-25T13:49:37.947 に答える