2016-09-19 4 views
0

私はショートコードを使用してページのコンテンツを取得しています。短コードはwpエディタで追加されたときにうまく動作しますが、うまく動作しないと思われます。これはajax経由では解析されないと言います。Ajaxでショートコードでコンテンツを取得する方法

私はAjax経由でWooCommerceの製品情報を表示するサイトをポップアップ表示しています。ショートコードは生のコードのみを表示し、解析されません。これは、ショート

function fetch_content_shortcode($atts, $content = null) 
{ 
    global $post; 
    extract(shortcode_atts(array(
     'id' => null 
    ), $atts)); 
    ob_start(); 
    $output = apply_filters('the_content', get_post_field('post_content', $id)); 
    $output .= ob_get_contents(); 
    ob_end_clean(); 
    return $output; 
} 

add_shortcode('fetch-content', 'fetch_content_shortcode'); 

テキストエディタではなく、アヤックスを追加したときに正常に動作[fetch-content id="1234"]ショートです。どんな助けでも感謝します。

+0

ここはajaxでうまくいきます。あなたは私にデモURLを送ってくださいできますか? –

+0

ありがとうMukesh。これら2つのURL https://ayanize.com/dev1/(クイックルックボタンをクリックしてください)とこのURL https://ayanize.com/dev1/product/demo-product/をご覧ください。握っている男のイメージは、クイックルックボタンでクリックしても表示されないページIDから取得されたコンテンツです。 – Ayanize

答えて

0

製品の「製品の説明」は、そのフィールドを取得したい場合は製品の内容ではなく、以下のコードを追加します。

/* If you want content of page, post or product */ 
$output = apply_filters('the_content', get_post_field('post_content', $id)); 
/* If you want excerpt of page, post or product */ 
$output = apply_filters('the_excerpt', get_post_field('post_excerpt', $id)); 

Shortcode to get product excerpt: 

function fetch_content_shortcode($atts, $content = null) { 
    global $post; 
    extract(shortcode_atts(array(
     'id' => null 
    ), $atts)); 
    ob_start(); 
    /* If you want excerpt of page, post or product */ 
    $output = apply_filters('the_excerpt', get_post_field('post_excerpt', $id)); 
    $output .= ob_get_contents(); 
    ob_end_clean(); 
    return $output; 
} 
add_shortcode('fetch-content', 'fetch_content_shortcode'); 

このコードは、テストさと完璧な作業しています。

+0

ありがとうございますが、これはここでのポイントではありません。ショートコードは実際にポスト・コンテンツをフェッチしていますが、これは抜粋で追加されています。これは、WCの短い説明ボックスに追加されているが、ajaxポップアップで呼び出されたときにDiviショートコードを解析しない単一の製品ページで動作しています – Ayanize

+0

コードがajaxでもうまく機能していることを抜粋 –

関連する問題