0

function.php.

函数.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函数中不起作用。

4

3 回答 3

1

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

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

于 2010-12-23T12:50:47.843 回答
0

如果您没有看到任何错误消息,请打开error_reportingdisplay_errors

$options['logo'] 在 theme_option 函数中完美运行,所以我不知道为什么它在 get_image_size 函数中不起作用。

正如@Sjoerd 所说:$options未在 function 中定义get_image_size。它仅在 function 中定义theme_options。这就是函数的意义所在,它们是一个黑匣子,仅从它们收到的参数中了解它们的环境。如果要使选项在 function 中可见get_image_size,则还必须在该 function 中启动 Theme Options

于 2010-12-23T12:57:38.437 回答
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只允许一个功能?

出了什么问题?

于 2010-12-23T13:38:07.433 回答