Wordpress Widget kodunu (biraz Akismet alınan değiştirilmiş) görmeye gidiyoruz.
Sorun $ başlığı; değişken sadece bir fonksiyonu çalışıyor ve vb globallerinin burada yardımcı görünmüyor.
Ne oldu?
function myWidget_control() {
$options = $newoptions = get_option('myWidget');
if ( isset( $_POST['myWidget-submit'] ) && $_POST["myWidget-submit"] ) {
$newoptions['title'] = strip_tags(stripslashes($_POST["myWidget-title"]));
if ( empty($newoptions['title']) ) $newoptions['title'] = __('Spam Blocked');
}
if ( $options != $newoptions ) {
$options = $newoptions;
update_option('myWidget', $options);
}
$title = htmlspecialchars($options['title'], ENT_QUOTES); ?>
<p><label for="myWidget-title"><?php _e('Title:'); ?><input style="width: 250px;" id="myWidget-title" name="myWidget-title" type="text" value="<?php echo $title; ?>" /></label></p>
<input type="hidden" id="myWidget-submit" name="myWidget-submit" value="1" />
<?php
}
function myWidget()
{
echo $title; /* shows nothing but works perfectly 8 lines above! */
echo $options['title']; /* shows nothing once again */
}