AJAX:从我点击的帖子中加载内容

时间:2019-07-23 作者:Marcin Urbańczyk

为什么要加载整个页面的HTML,而不是选定的帖子内容?

功能。PHP

function my_action_callback() {
    wp_localize_script(\'main_js\', \'ajax_custom\', array(
       \'ajaxurl\' => admin_url(\'admin-ajax.php\')
    ));
}
add_action( \'wp_enqueue_scripts\', \'my_action_callback\' );

function my_php_function_name() {
    $the_post_id = $_POST[\'post_id\'];
    $args = array(
        \'post_type\' => \'offer\',
        \'post_status\' => \'publish\',
        \'p\' => $the_post_id
    );
    global $post;
    $the_query = new WP_Query($args);
    if ($the_query->have_posts()) {
        while ($the_query->have_posts()) { $the_query->the_post(); 
            the_content();
        } wp_reset_postdata(); 
    }
}
主要。JS公司

$(".offer .item").click(function () {
    var post_id = $(this).attr("data-id")
    $("#post-container").html("content loading");
    $.ajax({
        url: ajax_custom.ajax_url,
        type: \'post\',
        data: {
            action: \'my_php_function_name\',
            post_id: post_id
        },
        success: function (data) {
            console.log(data);
            jQuery(\'#post-container\').html(data);
        }
    });
    return false;
});

1 个回复
SO网友:Douglas.Sesar

如果您只需要一篇帖子的内容:

$post   = get_post( $id );

$output =  apply_filters( \'the_content\', $post->post_content );

ob_clean();

echo $output;

die();

相关推荐

No posts on front page

我已经在寻找解决问题的方法,但一直没有找到。问题是:我的frontpage上没有显示帖子。我有以下设置:设置>阅读>主页显示>静态页面(选择下面)>主页:主页,帖子页面:博客。主页的内容显示正确,但下面没有帖子。博客页面单独运行正常,但这些帖子不会显示在frontpage上。问题出在哪里?请帮忙!PS:没有插件冲突。我已经检查过了。