2013-12-17 20 views
5

WordPress'teki gönderimlerimde, oluşturduğum ve kancaları doğru şekilde eklediğim my_player türünde bilinmeyen bir dizi kısa kod var. Bir tür WordPress işlevi olup olmadığını merak ettim, içeriğinizi iletebilir ve kısa adı kodlayabilir ve özellik adlarına göre endeksli özniteliklerine sahip bir dizi kısa kod verebilir. Aşağıda benim kod gibi bir şey ... Sana yukarıdaki var gibi bu endeksli değerleri kullanabilirsiniz add_shortcode() işlevini kullanarak kısa kod için kanca oluşturmak, ama ne zaman bunu yapabilecek bir işlevi olması gerektiğini biliyoruzPostScript'ten WordPress kısa kod özniteliklerini nasıl alırsınız?

$matches = get_shortcode_matches($content, "my_player"); 

for($i = 0; $i < sizeof($matches); $i++) 
{ 
    $title = $matches[$i]['title']; 
    $mp3 = $matches[$i]['mp3']; 
    $soundcloud = $matches[$i]['soundcloud']; 
} 

Onlara daha sonra ve döngünün dışında erişir. WordPress'in böyle bir işlevi var mı?

cevap

0

bu deneyin

<?php do_shortcode($content); ?> 
+2

Zaten bu kullanın. Bu özelliklerden herhangi birinin ve değerlerinin çıkarılmasına yardımcı olmaz. – jas7457

2

Bunu yapmanın çeşitli yolları vardır: 1. Yukarıda olduğu gibi kendi parçacığını yazın sizin "mu-plugins" şunları dahil klasör

// [myplayer attr="your-value"] 
function myplayer_func($atts) { 
    extract(shortcode_atts(array(
     'title' => 'something', 
     'mp3' => 'another something', 
       'soundcloud' => 'something else', 
    ), $atts)); 

    return "attr= {$attr}"; 
} 
add_shortcode('myplayer', 'myplayer_func'); 

yerde alt alanları da dahil olmak üzere herhangi bir görevde Sonra

[myplayer title="something" mp3="another something" soundcloud="something else"] 

. 2. Shortcoder ve Global Content Blocks

+0

Zaten kancaları ve 'add_shortcode() işlevini kurduğumu söyledim. Bu bilgiyi bu işlevden kullanabileceğinizi biliyorum, ancak kısa kod adını, aranacak içeriği ve bir dizi isim-değer çiftini döndüren bir işleve sahip olmak istiyorum. Orijinal gönderiimde yazılmış koduma benzer bir şey. – jas7457

+0

WordPress kodlama standartlarında korkunç ekstrakt() işlevinin kullanılması önerilmez. Sadece bilirsin. – redanimalwar

0

gibi eklentileri kullanabilirsiniz. Mevcut eylemleri kullanarak yapabileceğinizi düşünmüyorum. [shortcode_parse_atts] etkinliğine eklenmiş bir etkinlik yok. Bunu yapmanın tek yolu, [add_shortcode] ile ilgili işlev/yöntemlerin her birinde add_action/global değerlidir. gibi

şey:

function doShortCode($atts, $content=null){ 
    global $my_shortcode_storage; 
    $my_shortcode_storage['my_shortcode_1'][] = $atts; 
} 
İlgili konular