Во-первых: я знаю, что об этом уже спрашивали, но я просмотрел много вопросов/ответов и не могу понять, как заставить любой из них работать. Так что извините за это.
Итак, в основном я пишу некоторые функции/шорткоды в Wordpress, которые означают, что я могу использовать шорткод для публикации видео Vine в блоге Wordpress:
function embedVine($atts) {
extract(shortcode_atts(array(
"id" => ''
), $atts));
$vine_id = $id;
// I'm then doing a whole load of stuff involving $vine_id, including using it as a parameter to pass to different functions I've written that are separate to this function.
// I should also mention that $vine_id is the id on the end of a Vine URL.
} add_shortcode("vine", "embedVine");
Затем пользователь может использовать шорткод [vine id="..."]
в редакторе Wordpress.
Затем у меня есть функция, которую я написал, но я не хочу выполнять ее внутри функции выше, иначе она будет запускаться каждый раз, когда запускается функция/шорткод, что было бы нехорошо. Вместо этого мне нужно выполнить его вне функции, но по-прежнему использовать $vine_id
в качестве параметра для нее. Однако, поскольку $vine_id
был определен внутри функции выше, я не могу получить к нему доступ вне функции.
Вот вторая функция:
function vineThumb($id) {
$vine = file_get_contents("http://vine.co/v/{$id}");
return $vine;
// of course, it's a lot more complicated than this but for the sake of this, it works.
} vineThumb($vine_id);
Выполнение функции вернет http://vine.co/v/{$vine_id}. Как мне сделать функцию $vine_id доступной за пределами функции шорткода (первой)?
Надеюсь, я объяснил это достаточно ясно, я не PHP-программист, как вы, вероятно, заметили, но я знаю достаточно, чтобы обойтись. Хотя этот вид поставил меня в тупик. Спасибо за любую помощь :)