0

用户单击链接后,我想在当前页面中加载相应的页面。这个 ajaxpage 的主题应该不同于它的非 ajax 页面。

这些页面将由客户以不同的语言添加。所以没有固定的 id,客户不应该两次添加同一篇文章(1 次用于普通,1 次用于 ajax)。这规则手动覆盖模板。

第一部分,内容的ajax加载很容易做到,但是我不知道如何以不同的方式显示内容。

所以

domain.com/product/car 直接访问显示使用 single-product.php 作为模板的产品(汽车),其中包括页眉和页脚。

ajax 加载 domain.com/product/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 回答