WORDPRESS插件开发之小工具适配主题

本秂侑毒 提交于 2020-01-29 18:58:43
<?php
/**
 * Created by PhpStorm.
 * User: mmx
 * Date: 2020/1/16
 * Time: 16:54
 */
// 使用 widgets_init 动作钩子来执行自定义的函数
add_action('widgets_init', 'wlkq_qqlogin_register_widgets');

// 注册小工具
function wlkq_qqlogin_register_widgets()
{
    register_widget('wlkq_qqLogin');
}

//使用 WP_Widget 类来创建小工具
class wlkq_qqLogin extends WP_Widget
{
    //构造函数
    public function __construct()
    {
        $widget_ops = array(
            'classname' => 'wlkq_qqLogin',
            'description' => 'QQ登录'
        );
        $this->WP_Widget('QQ登录', 'QQ登录的小工具', $widget_ops);
    }

    //小工具管理界面
    public function form($instance)
    {
        $defaults = array('title' => "QQ登录");
        $instance = wp_parse_args((array)$instance, $defaults);
        $title = $instance['title'];
        ?>
        <p>标题: <input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" type="text"
                      value="<?php echo esc_attr($title); ?>"/></p>     
        <?php
    }

    //保存小工具设置
    public function update($new_instance, $old_instance)
    {
        $instance = $old_instance;
        $instance['title'] = strip_tags(trim($new_instance['title']));
        return $instance;
    }

    //显示小工具
    public function widget($args, $instance)
    {
        extract($args);
        $qqLoginObj = new QQLogin();
        $url = $qqLoginObj->getAuthorizationCode();
        $entry = "";
        if (is_user_logged_in()) {

            $this_user = wp_get_current_user();
            if (get_user_meta($this_user->ID, 'qq_openid', true) == "") {
                $title = "绑定您的QQ,下次方便登录!";
                $entry = "绑定QQ";
            } else {
                return "";
            }
        } else {
            $entry = "QQ扫码登录";
            $title = $instance['title'];
        }
        echo "    {$args['before_widget']}
                        {$args['before_title']}$title{$args['after_title']}
                        <div>
                            <ul>
                                <li><a href='{$url}'>{$entry}</a></li>
                            </ul>
                            <div style='text-align: right;font-size: 12px;margin-top: 12px'><a target='_blank' href='http://www.wuzhixiang.cn'>@未来可期制作</a></div>       
                        </div>
                 {$args['after_widget']}
        ";
    }

}

 

有的是直接输出 $before_widget、$after_widget,可能是老版本的,研究好长时间,查资料也没查到。在此总结一下。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!