1

有问题,我不明白我做错了什么..

我想获取WordPress中其他功能的功能价值..

此代码替换了代码的某些部分..

我想获取参数变量 words 的值(它需要 $attr['words']),然后使用其他函数(new_quote)。

    <?php
    /*
    * Plugin Name: Random Quotes
    */

    function random_quote($atts) {
        extract( shortcode_atts( array(
        'path' => plugin_dir_path(__FILE__).'quotes.txt',// default, if not set
        'label_new' => 'New Quote',
        'words' => 'no'   // yes or no 
        ), $atts ) );

        $temp = $attr['words']; // no
        ...

    }

    add_shortcode('randomquotes','random_quote');


    function new_quote(){
    global $temp;  // NULL
    /*
    global $attr;
    $temp = $attr['words']; // again NULL
    */
        ...

        if($temp == "no") {
        ...
        }
    }

   ...

?>

我究竟做错了什么?也许只是无法获得这个变量的值?

4

1 回答 1

3

看起来您需要在 random_quote() 函数中声明全局 $temp 。现在,random_quote() 正在使用 $temp 的本地版本,当函数完成时它会丢失。

编辑:这是一个示例片段

<?php
function test() {
  global $temp;
  $temp = 'no';
}
function my_test() {
  global $temp;

  var_dump($temp);
}

test();
my_test();
?>
于 2013-10-10T17:08:00.820 回答