0

CF7プラグインを介して生成されたフォームの1つのショートコード内にあるページのコンテンツをajaxを介してロードします。コンテンツがレンダリングされると、ショートコードは処理されず、テキストとして出力されます。ajax呼び出しでショートコードの実行を強制する方法はありますか? ありがとう、M.

これはjsスクリプトです:

function getcontent(postid){
    // here is where the request will happen
    jQuery.ajax({
        url: '/wp-admin/admin-ajax.php',//ajax controller request
        data:{
            'action':'dch',//action invoked
            'fn':'ghcontent',//function required
            'postid':postid//if of post required
        },
        cache: false,
        async:true,
        timeout: 3000,
        success:function(data){
            jQuery("#posthome").html(data);//print the html (content)
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });
}

そして、これは私のPHPコードです:

add_action('wp_ajax_nopriv_dch', 'ghcontent');
add_action('wp_ajax_dch', 'ghcontent');
function ghcontent(){
  $args = array('page_id' => $_REQUEST['postid']);
  query_posts($args);
  if(have_posts()) : 
    while (have_posts()) : the_post();
      the_content();
    endwhile;
  endif;
  die();
}
4

2 に答える 2

0

admin-ajax.php で do_shortcode が機能しない 代わりに、独自の ajax アクションを生成してみてください。同様の質問に対する次の回答を確認してください: https://wordpress.stackexchange.com/questions/53309/why-might-a-plugins-do-shortcode-not-work-in-an-ajax-request

于 2015-01-12T17:30:20.810 に答える