2016-09-21 2 views
1

다른 개발자의 플러그인이 여러 개있어서 Amazon 제품을 표시 할 수 있습니다. 그들은 모두 단축 코드 안에 아마존 카테고리 ID를 입력해야합니다.WordPress 다른 단축 코드에 변수를 전달하십시오.

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

것은 지금, 위젯 등 모든 페이지의 거대한 양의를 통해이 단축 코드를 사용하고 다음 나는 ID를 변경해야하고, 수동으로 그들 모두를 변경하는 거대한 번거 로움입니다. '사람들은 자기 밀폐 단축 코드가 apperantly 돈되는, 때문에 불행하게도이 작동하지 않는 것 [amazon bestseller="[myamazon_id]"]

을 :

내 생각은, 같은 [myamazon_id]을 내 자신의 단축 코드를 작성하고 다른 단축 코드 내부에 그 단축 코드를 입력했다 shortcodes 안에 shortcodes를 허용하지 마라.

현재 나의 솔루션은 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를 변경하려면 한 곳에서이 ID를 편집하면됩니다.

0

다음 코드와 함께 [amazon bestseller="myamazon_id"] 가능성이있는 shortcode.

이러한 중괄호 "[""]"

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

이 좋은 해결책처럼 보인다하여 다른 단축 코드를 포장 할 필요가 없습니다,하지만 난 그게 동작하지 않습니다. ''first_shortcode_amazon'' 함수는''myamazon_id'''를 짧은 코드로 해석하지 않고 대신 일반 텍스트로 해석한다고 믿게합니다. –

관련 문제