首先:我知道之前已经问过这个问题,但是我已经查看了很多问题/答案,我无法弄清楚如何让它们中的任何一个起作用。所以,对不起。
所以基本上我在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");
然后,用户可以在Wordpress编辑器中使用[vine id="..."]
短代码。
然后我有一个我写过的函数,但我不想在上面的函数中执行它,否则它会在每次运行函数/短代码时运行,这不会很好。我需要在函数之外执行它,但仍然使用$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程序员,因为你可能会告诉我,但我知道得足够了。这种让我很难过。感谢您的帮助:))
答案 0 :(得分:0)
我不知道这两个函数是否位于同一个文件中但是试试这个。 http://www.php.net/manual/en/language.variables.scope.php
$vine_id = null; //Define it outside the function
function embedVine($atts) {
global $vine_id; //Refers to $vine_id outside the function
extract(shortcode_atts(array(
"id" => ''
), $atts));
$vine_id = $id; //$vine_id now has the value of $id when embedVine exits
} add_shortcode("vine", "embedVine");