从function.php(Wordpress)中的函数调用时,PHP getimagesize不起作用?

时间:2010-12-23 12:48:21

标签: wordpress function getimagesize

function.php中的函数调用时,PHP getimagesize无效。

function.php:

<?php

    // Theme Options
    require_once(TEMPLATEPATH . '/functions/admin-menu.php');

    add_action('wp_head', 'theme_options', 'get_image_size');

    function theme_options() {
        // Initiate Theme Options
        $options = get_option('plugin_options');

        // If a logo image was uploaded then remove text from site title
        if ($options['logo'] != NULL)
            $remove_text = '-9999px';

        else
            $remove_text = 0;

        ?><style>
        body {
            background-color: <?php echo $options['color_scheme']; ?>
        }

        #header h1 a {
            background: url(<?php echo $options['logo']; ?>) no-repeat scroll 0 0;
            text-indent: <?php echo $remove_text; ?>;
        }
        </style><?php
    }

    function get_image_size() {

        list($width, $height, $type, $attr) = getimagesize($options['logo']);

        echo "Image width " .$width;
        echo "<BR>";
        echo "Image height " .$height;
        echo "<BR>";

        var_dump($width);
        var_dump($heigt);
    }

$options['logo']正在返回http://localhost/wordpress/wp-content/uploads/2010/12/logo4.png,因此正在显示图片。

我也var_dump$width$height,但他们没有出现。

有什么建议吗?

编辑:我粘贴了functions.php的完整代码。 $options['logo']theme_option函数中完美运行,因此我不知道为什么它在get_image_size函数中不起作用。

3 个答案:

答案 0 :(得分:1)

您的代码中未定义

$options['logo']。如果它是在您的函数之外定义的,则默认情况下它不在函数内部。

开发时,请使用ini_set('display_errors', 1)error_reporting(E_ALL)启用错误报告。这将确保报告任何错误。

答案 1 :(得分:0)

我没有看到任何错误消息,请调出error_reportingdisplay_errors

  

$ options ['logo']完美地运作   theme_option函数所以我没有   知道为什么它不起作用   get_image_size函数。

正如@Sjoerd所说:$options未在函数get_image_size中定义。它仅在函数theme_options中定义。这就是功能的含义,它们只是一个黑盒子,只能从他们收到的论据中了解他们的环境。如果您想在功能get_image_size中显示选项,您还必须在该功能中启动主题选项

答案 2 :(得分:0)

我发现了如何修复它(将函数分成不同的add_action语句):

add_action('wp_head', 'theme_options');

function theme_options { 
    ...
}

add_action('wp_head', 'get_image_size');

function get_image_size { 
    ...
}

add_action只允许一个功能?

问题是什么?