2013-12-17 17 views
5

Trong các bài đăng của tôi trên WordPress, tôi có một số mã rút gọn không xác định là loại my_player mà tôi đã tạo và thêm các móc vào đúng. Tôi đã tự hỏi nếu có một số loại chức năng WordPress bạn có thể vượt qua nội dung của bạn và tên shortcode, và nó có thể cung cấp cho bạn một mảng shortcodes phù hợp với các thuộc tính của họ được lập chỉ mục theo tên thuộc tính. Một cái gì đó giống như mã của tôi dưới đây ...Cách trích xuất các thuộc tính shortcode của WordPress từ nội dung bài đăng

$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']; 
} 

Tôi biết rằng khi bạn tạo các móc cho shortcodes sử dụng add_shortcode() chức năng bạn có thể sử dụng những giá trị này được lập chỉ mục như tôi có ở trên, nhưng tôi cần phải có một chức năng mà có thể truy cập chúng sau và vòng lặp. WordPress có bất kỳ chức năng nào như vậy không?

Trả lời

0

thử này,

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

tôi đã sử dụng những. Điều đó không giúp giải nén bất kỳ thuộc tính nào và giá trị của chúng. – jas7457

2

Có một số cách để làm điều này: 1. Viết đoạn của riêng bạn như bạn đã làm ở trên, chèn sau trong bạn "mu-plugins" thư mục

// [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'); 

Sau đó,

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

trong bất kỳ bài đăng nào từ bất kỳ đâu bao gồm tên miền phụ. 2. Bạn có thể sử dụng các plugin như ShortcoderGlobal Content Blocks

+0

Tôi đã nói rằng tôi đã thiết lập các móc và hàm 'add_shortcode()'. Tôi biết rằng bạn có thể sử dụng thông tin này từ chức năng này, nhưng tôi muốn có một hàm cung cấp tên shortcode, nội dung để tìm kiếm và trả về một mảng các cặp tên-giá trị. Một cái gì đó tương tự như mã của tôi được viết trong bài đăng gốc của tôi. – jas7457

+0

Sử dụng hàm trích xuất khủng khiếp() không được khuyến khích trong các tiêu chuẩn mã hóa WordPress. Chỉ để bạn biết. – redanimalwar

0

Tôi không nghĩ bạn có thể bằng cách sử dụng các hành động hiện có. [shortcode_parse_atts] không có sự kiện nào được đính kèm với nó. Cách duy nhất bạn có thể làm, là add_action/toàn cầu có giá trị trong mỗi hàm/phương thức liên quan đến [add_shortcode] của bạn.

Cái gì như:

function doShortCode($atts, $content=null){ 
    global $my_shortcode_storage; 
    $my_shortcode_storage['my_shortcode_1'][] = $atts; 
} 
Các vấn đề liên quan