You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中用jQuery解析并展示conference_speaker_business字段

解决WordPress AJAX加载文章时自定义字段无法显示的问题

要让Bootstrap模态框同时展示conference_speaker_business自定义字段,分三步修改代码即可:

1. 更新AJAX回调函数(PHP)

在load_post_by_ajax_callback函数中,将自定义字段的值加入返回的响应数组:

function load_post_by_ajax_callback() {
    check_ajax_referer('view_post', 'security');
    $args = array(
        'post_type' => 'post',
        'p' => $_POST['id'],
    );
    
    $posts = new WP_Query( $args );
    
    $arr_response = array();
    if ($posts->have_posts()) {
        while($posts->have_posts()) {
            $posts->the_post();
            
            // 获取自定义字段值
            $speaker_business = get_post_meta(get_the_ID(), 'conference_speaker_business', true);
            
            $arr_response = array(
                'title' => get_the_title(),
                'content' => get_the_content(),
                'speaker_business' => $speaker_business // 添加到响应数组
            );
        }
        wp_reset_postdata();
    }
    
    echo json_encode($arr_response);
    wp_die();
}
add_action('wp_ajax_load_post_by_ajax', 'load_post_by_ajax_callback');
add_action('wp_ajax_nopriv_load_post_by_ajax', 'load_post_by_ajax_callback');

2. 修改前端JS代码

在AJAX成功回调中,将自定义字段内容插入模态框:

jQuery(function($) {
    $('body').on('click', '.view-post', function() {
        var data = {
            'action': 'load_post_by_ajax',
            'id': $(this).data('id'),
            'security': blog.security
        };
        $.post(blog.ajaxurl, data, function(response) {
            response = JSON.parse(response);
            $('#postModal h5#postModalLabel').text(response.title);
            
            // 组合文章内容与自定义字段
            var modalContent = `
                ${response.content}
                ${response.speaker_business ? '<div class="mt-3"><strong>演讲者所属机构:</strong>' + response.speaker_business + '</div>' : ''}
            `;
            $('#postModal .modal-body').html(modalContent);
 
            var postModal = new bootstrap.Modal(document.getElementById('postModal'));
            postModal.show();
        });
    });
});

3. 可选:优化模态框HTML布局

如果需要更清晰的结构,可以在模态框的.modal-body中预留专门区域:

<div class="modal-body">
    <div class="post-content"></div>
    <div class="speaker-business mt-3"></div>
</div>

对应的JS代码调整为:

// ...
$('#postModal .post-content').html(response.content);
if (response.speaker_business) {
    $('#postModal .speaker-business').html('<strong>演讲者所属机构:</strong>' + response.speaker_business);
} else {
    $('#postModal .speaker-business').empty();
}
// ...

内容的提问来源于stack exchange,提问作者user3362364

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:05:05