2016-05-15 81 views
1

無法真正掌握這一點。我試圖做一個wordpress短代碼,從另一個文件中的數組中獲取值。我試圖實現的是使短代碼myshortCode valueFromKey取決於密鑰。Wordpress短代碼未命名屬性

這是我的functions.php簡碼功能

function someCode($opts) { 
    require_once(get_stylesheet_directory() . '/assets/php/array.php'); 
    return $array[$opts[0]]; 
}add_shortcode('myshortCode', 'someCode'); 

這是array.php陣列

$array = array(
    'key1' => 'a string respons...', 
    'key2' => '...from external API' 
); 

但無論我做什麼,我只能拿到第一鍵值來自陣列。例如
'myshortCode KEY1'
'myshortCode KEY2'
僅返回 'myshortCode KEY1'

我打算使用這種從外部API顯示respons數據。因此,所有這些簡碼都將位於同一頁面的不同部分。

回答

1

我剛纔測試的代碼,並能正常工作在我身邊

[myshortCode「鍵1」,「鍵2」]這是我叫簡碼

,這是我已經包括了我的functions.php

不要多次調用該文件只是聲明函數上面的數組或者在函數上面包含文件一次。

require_once(get_stylesheet_directory() . '/array.php'); 

OR

$array = array('key' => 'value'); 

然後函數裏面只寫全球$陣列;訪問在函數外聲明的變量。

function someCode($opts) { 
    global $array; 

    return $array[$opts[1]]; 

} 
add_shortcode('myshortCode', 'someCode'); 

確保你在array.php文件的開頭有<?php,並確保路徑是正確的。其餘的都應該沒問題。

$opts 

是你不願透露姓名的屬性的數組,所以你可以選擇$ OPTS [0],$選擇採用[1]等..

+0

感謝您嘗試,但它不工作。所有路徑都是正確的,沒有標籤(即<?php)不完整。在我沒有得到的語法中有一些東西。也許我需要澄清。我將在同一頁面上的幾個地方使用簡碼,其中屬性應該決定要獲取的內容(即,我無法插入[$ opt [0]])。可能沒有更好地澄清我的問題。我需要根據短代碼中返回的屬性從數組中獲取不同的內容(例如'ashortcode key1'返回數組中key1的值。我相信我的返回必須改變。 – axelra82

+0

因此,如果您將使用[myshortCode「那麼它應該顯示「一個字符串響應...」,如果你使用[myshortCode「key2」],你會得到「...從外部API」返回(你將使用$ opts [0])。功能在我身上完美無缺 –

+0

對不起剛剛檢查過,如果短代碼被使用了兩次然後就中斷了,讓我進一步檢查 –