0

の関数から呼び出された場合、PHP getimagesize が機能しません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

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 に答える
0

エラー メッセージが表示されない場合は、error_reportingdisplay_errorsを上げてください。

$options['logo'] は theme_option 関数で完全に機能するため、get_image_size 関数で機能しない理由がわかりません。

@Sjoerd が言ったように:$optionsは function で定義されていませんget_image_size。function でのみ定義されますtheme_options。それが関数の目的です。関数は、受け取った引数からのみ環境を知るブラックボックスです。関数でオプションを表示したい場合は、その関数でもテーマ オプションget_image_sizeを開始する必要があります。

于 2010-12-23T12:57:38.437 に答える