使用Wordpress使用不同的模板通过ajax加载页面

时间:2012-04-25 13:16:37

标签: wordpress

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

客户端将以不同语言添加页面。因此,没有固定的ID,客户端不应该添加相同的文章两次(1为正常,1为ajax)。这规则手动覆盖模板。

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

所以

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

ajax loading domain.com/product/car会显示一个产品(汽车),但没有页眉和页脚,也许会有一些小的布局更改。

我最初的想法是动态设置一些模板(template-product-ajax.php),但我不确定这是否可能或如何。

简而言之,如何在wordpress中使用ajax加载页面时创建不同的模板/布局/视图

1 个答案:

答案 0 :(得分: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数据发送到单独的页面,它应该可以帮助您入门。