__( 'Author box widget for the sidebar', 'anissa' ), ) ); } private function showSocialIfSet( $instance, $authorId, $property ) { return !empty( $instance['social_' . $property . '-' . $authorId] ) ? '
  • ' : ''; } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget( $args, $instance ) { global $post; if ( empty( $post ) ) return; if ( is_single() || is_page() ) { $authorId = $post->post_author; } else { $authorId = get_user_by( 'email', get_bloginfo( 'admin_email' ) )->ID; } echo '
    '; echo 'author'; echo $args['before_title'] . esc_html( ( !empty( $instance['title-' . $authorId] ) ) ? $instance['title-' . $authorId] : '' ) . $args['after_title']; echo '

    ' . strip_tags( ( ( !empty( $instance['textbox-' . $authorId] ) ) ? $instance['textbox-' . $authorId] : '' ), '

    '; } /** * Sanitize widget form values as they are saved. * * @see WP_Widget::update() * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $userId = (int)$new_instance['author']; $instance = array(); $fields = array( 'title' => 'sanitize_text_field', 'textbox' => 'strip_tags', 'image_url' => 'esc_url', 'social_twitter' => 'esc_url', 'social_facebook' => 'esc_url', 'social_dribbble' => 'esc_url', 'social_pinterest' => 'esc_url', 'social_linkedin' => 'esc_url', 'social_drupal' => 'esc_url', 'social_wordpress' => 'esc_url', 'social_y-combinator' => 'esc_url', 'social_google-plus' => 'esc_url', 'social_behance' => 'esc_url', 'social_flickr' => 'esc_url', 'social_500px' => 'esc_url', 'social_reddit' => 'esc_url', 'social_youtube' => 'esc_url', 'social_soundcloud' => 'esc_url', 'social_medium' => 'esc_url', ); foreach ( $fields as $field => $sanitization ) { $field .= '-' . $userId; if ( $sanitization === 'strip_tags' ) { $instance[$field] = $sanitization( $new_instance[$field], '

      1. ' ); } else { $instance[$field] = $sanitization( $new_instance[$field] ); } }; return array_merge( $new_instance, $instance ); } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. */ public function form( $instance ) { echo '
        '; echo ''; // show only admin user - author box widget will always display admin info $admin = get_user_by( 'email', get_option( 'admin_email' ) ); wp_dropdown_users( array( 'name' => 'author', 'include' => $admin->ID ) ); $users = get_users(); $i = 0; $showUserId = 0; foreach ( $users as $user ): if ( $i === 0 ) { $showUserId = $user->ID; $i++; } $title = ( isset( $instance['title-' . $user->ID] ) ) ? $instance['title-' . $user->ID] : __( 'AUTHOR PROFILE', 'anissa' ); $textbox = ( isset( $instance['textbox-' . $user->ID] ) ) ? $instance['textbox-' . $user->ID] : __( 'About the author text', 'anissa' ); $image_url = ( isset ( $instance['image_url-' . $user->ID] ) ) ? $instance['image_url-' . $user->ID] : get_template_directory_uri() . '/images/author_profile.png'; $social_twitter = ( isset ( $instance['social_twitter-' . $user->ID] ) ) ? $instance['social_twitter-' . $user->ID] : ''; $social_facebook = ( isset ( $instance['social_facebook-' . $user->ID] ) ) ? $instance['social_facebook-' . $user->ID] : ''; $social_dribbble = ( isset ( $instance['social_dribbble-' . $user->ID] ) ) ? $instance['social_dribbble-' . $user->ID] : ''; $social_pinterest = ( isset ( $instance['social_pinterest-' . $user->ID] ) ) ? $instance['social_pinterest-' . $user->ID] : ''; $social_linkedin = ( isset ( $instance['social_linkedin-' . $user->ID] ) ) ? $instance['social_linkedin-' . $user->ID] : ''; $social_drupal = ( isset ( $instance['social_drupal-' . $user->ID] ) ) ? $instance['social_drupal-' . $user->ID] : ''; $social_wordpress = ( isset ( $instance['social_wordpress-' . $user->ID] ) ) ? $instance['social_wordpress-' . $user->ID] : ''; $social_ycombinator = ( isset ( $instance['social_y-combinator-' . $user->ID] ) ) ? $instance['social_y-combinator-' . $user->ID] : ''; $social_gplus = ( isset ( $instance['social_google-plus-' . $user->ID] ) ) ? $instance['social_google-plus-' . $user->ID] : ''; $social_behance = ( isset ( $instance['social_behance-' . $user->ID] ) ) ? $instance['social_behance-' . $user->ID] : ''; $social_500px = ( isset ( $instance['social_500px-' . $user->ID] ) ) ? $instance['social_500px-' . $user->ID] : ''; $social_flickr = ( isset ( $instance['social_flickr-' . $user->ID] ) ) ? $instance['social_flickr-' . $user->ID] : ''; $social_reddit = ( isset ( $instance['social_reddit-' . $user->ID] ) ) ? $instance['social_reddit-' . $user->ID] : ''; $social_youtube = ( isset ( $instance['social_youtube-' . $user->ID] ) ) ? $instance['social_youtube-' . $user->ID] : ''; $social_soundcloud = ( isset ( $instance['social_soundcloud-' . $user->ID] ) ) ? $instance['social_soundcloud-' . $user->ID] : ''; $social_medium = ( isset ( $instance['social_medium-' . $user->ID] ) ) ? $instance['social_medium-' . $user->ID] : ''; ?> get_field_name( 'author' ) . '" value="' . $users[0]->ID . '">'; echo '
        '; } } // init the widget function anissa_register_author_box_widget() { register_widget( 'anissa_Author_Box_Widget' ); } add_action( 'widgets_init', 'anissa_register_author_box_widget' ); // queue up the necessary js function anissa_author_box_widget_script_enqueue() { wp_enqueue_style( 'thickbox' ); wp_enqueue_script( 'media-upload' ); wp_enqueue_script( 'thickbox' ); wp_enqueue_script( 'anissa_author_box_widget_js', get_template_directory_uri() . '/js/widget-author-box.js', null, null, true ); } add_action( 'admin_enqueue_scripts', 'anissa_author_box_widget_script_enqueue' );