通过AJAX加载模板时不同的后类

时间:2014-01-15 作者:mathiregister

我的event-item.php

<?php
/**
 * The event template
 */ 
?>

<li>
    <article id="event-<?php the_ID(); ?>" <?php echo event_canceled($post) ? post_class(\'wrapper canceled\') : post_class(\'wrapper\'); ?>>
这导致了…

<article id="event-168" class="post-168 type-wr_event status-publish hentry wrapper wr_event schoenebuecher">
但是,在加载此事件项时。通过ajax的php模板wr_event 未添加。

有人知道为什么会发生这种情况,或者是什么导致了这种情况吗?

Update:

Ajax:

$.get(
    ajax.url, 
    {
        \'action\': \'get_event_list\',
        \'order\' : \'DSC\',
    }, 
    function( response, status ) {
        $(\'ul.event-items\').append(response);
        }
);

functions.php

add_action(\'wp_enqueue_scripts\', \'theme_name_scripts\');

function theme_name_scripts() {

    wp_enqueue_script( \'script-name\', get_bloginfo(\'stylesheet_directory\') . \'/js/min.js\', array(), \'1.0.0\', false );
    wp_localize_script( \'script-name\', \'ajax\', array( \'url\' => admin_url( \'admin-ajax.php\' ) ) );
}

add_action(\'wp_ajax_get_event_list\', \'get_event_list\');
add_action(\'wp_ajax_nopriv_get_event_list\', \'get_event_list\');

function get_event_list( $latest = true, $order = \'ASC\', $return = false, $year = NULL, $cat = \'\' ) {
现在我去掉了在标题中嵌入脚本的标记。php文件。管理ajax和嵌入的脚本可以工作,但是在行为上没有任何改变,仍然没有wr_event 在后课堂上。

1 个回复
最合适的回答,由SO网友:Manolo 整理而成

您必须使用此格式:

功能。PHP

function theme_name_scripts() {

    wp_enqueue_script( \'script-name\', get_bloginfo(\'stylesheet_directory\') . \'/js/min.js\', array(), \'1.0.0\', true );
    wp_localize_script( \'script-name\', \'ajax\', array( \'url\' => admin_url( \'admin-ajax.php\' ) ) );
}

function ajax_callback() {
     get_event_list();
}

add_action( \'wp_enqueue_scripts\', \'theme_name_scripts\' );
add_action(\'wp_ajax_ajax\', \'ajax_callback\');
add_action(\'wp_ajax_nopriv_ajax\', \'ajax_callback\');
AJAX:
$.get(
    ajax.url, 
    {
        \'action\': \'ajax\',
        \'order\' : \'DSC\',
    }, 
    function( response, status ) {
        $(\'ul.event-items\').append(response);
        }
);
您可以使用此行明确包括wr_event 类别:

 <article id="event-<?php the_ID(); ?>" <?php echo event_canceled($post) ? post_class(\'wrapper canceled wr_event\') : post_class(\'wrapper wr_event\'); ?>>
并添加die(); 在模板文件的末尾,以避免显示零。

结束

相关推荐