Создаем виджет для соц.сетей в WordPress самостоятельно. Эпизод 2

Начало статьи читайте по ссылке Создаем виджет для соц.сетей в WordPress самостоятельно. Эпизод 1

Когда же значения будут введены в поля форм, их необходимо сохранить в базу данных. Метод update() «очищает» значения форм, убирая ненужные данные и сохраняет значения в базу данных.

public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['facebook'] = (!empty($new_instance['facebook']) ) ? strip_tags($new_instance['facebook']) : '';
        $instance['twitter'] = (!empty($new_instance['twitter']) ) ? strip_tags($new_instance['twitter']) : '';
        $instance['google'] = (!empty($new_instance['google']) ) ? strip_tags($new_instance['google']) : '';
        $instance['linkedin'] = (!empty($new_instance['linkedin']) ) ? strip_tags($new_instance['linkedin']) : '';
 
        return $instance;
    }

Итак, мы уже создали настройки виджета, которые содержат ссылки на определенные профили в социальных сетях, а также добавили возможность сохранять эти настройки в базу данных.

Далее последует функция widget(), которая будет выводить ссылки на профили в социальных сетях на фронт-энде WordPress.

public function widget($args, $instance) {
 
        $title = apply_filters('widget_title', $instance['title']);
        $facebook = $instance['facebook'];
        $twitter = $instance['twitter'];
        $google = $instance['google'];
        $linkedin = $instance['linkedin'];
 
// ссылки на соц.профили
        $facebook_profile = '<a class="facebook" href="' . $facebook . '"><i class="fa fa-facebook"></i></a>';
        $twitter_profile = '<a class="twitter" href="' . $twitter . '"><i class="fa fa-twitter"></i></a>';
        $google_profile = '<a class="google" href="' . $google . '"><i class="fa fa-google-plus"></i></a>';
        $linkedin_profile = '<a class="linkedin" href="' . $linkedin . '"><i class="fa fa-linkedin"></i></a>';
 
echo $args['before_widget'];
if (!empty($title)) {
echo $args['before_title'] . $title . $args['after_title'];
}
 
        echo '<div class="social-icons">';
        echo (!empty($facebook) ) ? $facebook_profile : null;
        echo (!empty($twitter) ) ? $twitter_profile : null;
        echo (!empty($google) ) ? $google_profile : null;
        echo (!empty($linkedin) ) ? $linkedin_profile : null;
        echo '</div>';
        echo $args['after_widget'];
}

Вот что делает этот код. Ссылки на профили Facebook, Twitter, Google+ и LinkedIn сохраняются в базе данных через форму настроек виджета, извлекаются и сохраняются в соответствующие переменные PHP. Ссылка HTML на профиль социальной сети с соответствующими им иконками font awesome в качестве анкорных изображений следом сохраняются в переменную для последующего использования.

И, наконец, ссылки на профили в социальных сетях выводятся только в том случае, если профиль задан в настройках виджета. Это сделано для того, чтобы профиль соц.сети без указанной ссылки не выводился на сайте.

Класс виджета Designmodo_Social_Profile зарегистрирован с помощью хука widgets_init, чтобы WordPress его распознал.

// регистрация виджета Designmodo_Social_Profile
function register_designmodo_social_profile() {
register_widget('Designmodo_Social_Profile');
}
 
add_action('widgets_init', 'register_designmodo_social_profile');

Продолжение статьи читайте по ссылке Создаем виджет для соц.сетей в WordPress самостоятельно. Эпизод 3

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top