从微件输入的名称显示边栏名称,而不是保存的数据

时间:2013-12-22 作者:keilowe

我不知道该如何命名这个问题,所以我道歉。首先让我声明,我没有这类代码的经验,但我真的需要为我的网站提供这一功能,所以我感谢所有人能提供的帮助!

无论如何,我最近得到了一个解决我之前问题的方法,可以在这里找到//

Create Image Uploader for Widget

它工作得很好,但现在的新问题是,我想添加一个“名称”输入和一种显示默认文本的方法,该文本将显示在前端。

我在这里找到了一个教程//

http://wp.tutsplus.com/tutorials/creative-coding/building-custom-wordpress-widgets/

它使用if ( $name ) printf( \'<p>\' . __(\'Hey their Sailor! My name is %1$s.\', \'example\') . \'</p>\', $name ); 显示名称。所以我尝试将其添加到我的函数中。php。

然后想出了这个//

// register sidebar
if (function_exists(\'register_sidebar\')) {
register_sidebar(
    array(
    \'name\' => \'Left Sidebar\',
    \'id\' => \'left-sidebar\',
    \'description\' => \'Widget Area\',
    \'before_widget\' => \'<div id="one" class="two">\',
    \'after_widget\' => \'</div>\',
    )
);
}

// register widget
add_action(\'widgets_init\', \'eotw_widget\');
function eotw_widget() {
register_widget( \'eotw_w\' );
}

// add admin scripts
add_action(\'admin_enqueue_scripts\', \'ctup_wdscript\');
function ctup_wdscript() {
wp_enqueue_media();
wp_enqueue_script(\'ads_script\', get_template_directory_uri() . \'/js/ads.js\', false,    \'1.0\', true);
}

// widget class
class eotw_w extends WP_Widget {

function eotw_w() {
    $widget_ops = array(\'classname\' => \'eotw-w\');
    $this->WP_Widget(\'eotw-w-widget\', \'EOTW\', $widget_ops);
}

function widget($args, $instance) {
    extract($args);

    // widget content
    echo $before_widget;


    if ( $name )
        printf( \'<p>\' . __(\'Hey there Sailor! My name is %1$s.\', \'example\') . \'</p>\', $name );
?>
    <img class="eotw-edit" src="<?php echo esc_url($instance[\'image_uri\']); ?>" />

<?php
    echo $after_widget;

}

function update($new_instance, $old_instance) {
    $instance = $old_instance;
    $instance[\'name\'] = strip_tags( $new_instance[\'name\'] );
    $instance[\'image_uri\'] = strip_tags( $new_instance[\'image_uri\'] );
    return $instance;
}

function form($instance) {
?>

<p>
        <label for="<?php echo $this->get_field_id( \'name\' ); ?>"><?php _e(\'Your Name:\', \'example\'); ?></label>
        <input id="<?php echo $this->get_field_id( \'name\' ); ?>" name="<?php echo $this->get_field_name( \'name\' ); ?>" value="<?php echo $instance[\'name\']; ?>" style="width:100%;" />
    </p>
<p>
    <label for="<?php echo $this->get_field_id(\'image_uri\'); ?>">Image</label><br />

    <?php
        if ( $instance[\'image_uri\'] != \'\' ) :
            echo \'<img class="custom_media_image" src="\' . $instance[\'image_uri\'] . \'" style="margin:0;padding:0;max-width:100px;float:left;display:inline-block" /><br />\';
        endif;
    ?>

    <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name(\'image_uri\'); ?>" id="<?php echo $this->get_field_id(\'image_uri\'); ?>" value="<?php echo $instance[\'image_uri\']; ?>" style="margin-top:5px;">

    <input type="button" class="button button-primary custom_media_button" id="custom_media_button" name="<?php echo $this->get_field_name(\'image_uri\'); ?>" value="Upload Image" style="margin-top:5px;" />
</p>

<?php
    }
}
?>
图像显示在前端,因此//

嘿,水手!我的名字是

但显示的不是输入字段中插入的“名称”,而是“左侧边栏”名称。

我不知道如何解决这个问题。所以我的问题是,我哪里做错了?为了正确显示名称输入中的数据而不是侧边栏的名称,我可以修改代码的哪一部分?请帮忙。

1 个回复
SO网友:keilowe

好了,现在可以了。名称输入的数据现在与上载的图像一起显示在前端。我真的无法解释为什么。。。但我基本上只是复制了我发布的教程链接中的一些行,并将其粘贴到它所属的位置,然后一切都开始按它应该的方式工作。

这是新的*代码//

// widget class
class eotw_w extends WP_Widget {

function eotw_w() {
    $widget_ops = array(\'classname\' => \'eotw-w\');
    $this->WP_Widget(\'eotw-w-widget\', \'Editor of the Week\', $widget_ops);
}

function widget($args, $instance) {
    extract($args);
$title = apply_filters(\'widget_title\', $instance[\'title\'] );
    $name = $instance[\'name\'];
     $image_uri = $instance[\'image_uri\'];

    // widget content
    echo $before_widget;
            if ( $title )
        echo $before_title . $title . $after_title;


    if ( $name )
        printf( \'<p>\' . __(\'This weeks EOTW is %1$s \', \'example\') . \'</p>\', $name );
?>
    <img class="eotw-edit" src="<?php echo esc_url($instance[\'image_uri\']); ?>" />

<?php
    echo $after_widget;

}

function update($new_instance, $old_instance) {
    $instance = $old_instance;
    $instance[\'title\'] = strip_tags( $new_instance[\'title\'] );
    $instance[\'name\'] = strip_tags( $new_instance[\'name\'] );
    $instance[\'image_uri\'] = strip_tags( $new_instance[\'image_uri\'] );
    return $instance;
}

function form($instance) {  
        //Set up some default widget settings.
    $defaults = array( \'title\' => __(\'Editor of the Week\', \'example\'), \'name\'     => __(\'Bilal Shaheen\', \'example\'));
    $instance = wp_parse_args( (array) $instance, $defaults ); ?>

    <p>
        <label for="<?php echo $this->get_field_id( \'title\' ); ?>"><?php _e(\'Title:\', \'example\'); ?></label>
        <input id="<?php echo $this->get_field_id( \'title\' ); ?>" name="<?php echo $this->get_field_name( \'title\' ); ?>" value="<?php echo $instance[\'title\']; ?>" style="width:100%;" />
    </p>

<p>
    <label for="<?php echo $this->get_field_id(\'name\'); ?>">name</label><br />
    <input type="text" name="<?php echo $this->get_field_name(\'name\'); ?>" id="<?php echo $this->get_field_id(\'name\'); ?>" value="<?php echo $instance[\'name\']; ?>" class="widefat" />
</p>
<p>
    <label for="<?php echo $this->get_field_id(\'image_uri\'); ?>">Image</label><br />

    <?php
        if ( $instance[\'image_uri\'] != \'\' ) :
            echo \'<img class="custom_media_image" src="\' . $instance[\'image_uri\'] . \'" style="margin:0;padding:0;max-width:100px;float:left;display:inline-block" /><br />\';
        endif;
    ?>

    <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name(\'image_uri\'); ?>" id="<?php echo $this->get_field_id(\'image_uri\'); ?>" value="<?php echo $instance[\'image_uri\']; ?>" style="margin-top:5px;">

    <input type="button" class="button button-primary custom_media_button" id="custom_media_button" name="<?php echo $this->get_field_name(\'image_uri\'); ?>" value="Upload Image" style="margin-top:5px;" />
</p>

<?php
}
}
?>

结束

相关推荐

编写一个WordPress插件并尝试包含Facebook PHP SDK

我正在为Wordpress编写一个插件,它需要Facebook PHP SDK。从一年多前我发现的结果来看,我遇到了一个常见的问题。不幸的是,我一直无法找到解决方案。我使用的是Wordpress 3.8和从github获得的Facebook PHP SDK Master,所以这应该是最新版本。实际上,我已经在Wordpress之外运行了相同的代码,它成功地运行了,没有出现任何错误。所以,我上传我的插件并激活它。我转到我构建的面板,该面板要求提供appID和密钥,以及facebook帐户的用户名。插件所要做