Начало статьи читайте по ссылке Создаем виджет для соц.сетей в 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
