2016-09-21 32 views
1

私はAmazonの製品を表示することを可能にする異なる開発者からの複数のプラグインを持っています。 彼らはショートコードの中にアマゾンカテゴリIDを入力する必要があります。WordPress別のショートコードに変数を渡す

[amazon bestseller="1234567"] 
[amz_links node="1234567"] 
[amazon_toprated category="1234567"] 

私はすべての今して、ページの膨大な量を越えウィジェットなど をこれらのショートコードを使用しています私はIDを変更する必要があり、それは手動でそれらすべてを変更するには巨大な面倒です。

私の考えは、このような[myamazon_id]としての私自身のショートを作成し、他のショートコード内でそのショートを入力することでした:[amazon bestseller="[myamazon_id]"]

ものはapperantlyドン自己囲まれたショートコード」であるため、残念ながら、これは、動作するようには思えませんショートコードの内部にショートコードを許可する。

私の現在の解決策は、WordPressのページとウィジェットの中でPHPを使用できるようにするプラグインを使用することです。

[insert_php]echo do_shortcode('[amazon bestseller="'.myamazonid().'"]');[/insert_php]

これは機能しますが、ショートにvaribleを渡すよりよい解決策がある場合、私は疑問に思って。 PHPをページやウィジェットで直接使用することは、私が気に入ったものではありません。

私の目標は、このようなものを持っているだろう。このため[amazon bestseller="[myamazon_id]"]

答えて

0

一つの簡単な解決策は、プラグインPost Snippetsすることができます。このプラグインを使えば、カテゴリーIDを持つ3つのアマゾンのショートコードを含む3つの新しいショートコードを作成できます。新しい作成されたショートコードを使用することができます。カテゴリーIDを変更したい場合は、これを1か所で編集するだけです。

0

ショートコードは次のようになります[amazon bestseller="myamazon_id"] possibile with following code。

あなたはこれらの中括弧"[""]"

function first_shortcode_amazon($atts) { 
    $newvar = do_shortcode('['.$atts['bestseller'].']'); 
    return $newvar; 
} 
add_shortcode('amazon', 'first_shortcode_amazon'); 


function second_shortcode_for_amazonid($atts) { 
    global $post; 
    // here i have placed global post id. you can do code to get amazon id here 
    return 'AMAZON_ID=> '.$post->ID; 
} 
add_shortcode('myamazon_id', 'second_shortcode_for_amazonid'); 
+0

これは良い解決策のように見えて、別のショートをラップする必要はありませんが、私はそれを動作させることはできません。ショートコードはIDが与えられていないように動作しています。これは、 '' 'first_shortcode_amazon''関数が' 'myamazon_id'''を短いコードとして解析するのではなく、通常のテキストとして解析することにつながります。 –

関連する問題