从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
函数中不起作用。
答案 0 :(得分:1)
$options['logo']
。如果它是在您的函数之外定义的,则默认情况下它不在函数内部。
开发时,请使用ini_set('display_errors', 1)
和error_reporting(E_ALL)
启用错误报告。这将确保报告任何错误。
答案 1 :(得分:0)
我没有看到任何错误消息,请调出error_reporting和display_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
只允许一个功能?
问题是什么?