|
LillyMilq 1 / 1 / 0 Регистрация: 14.03.2019 Сообщений: 32 |
||||||||
|
1 |
||||||||
Чтобы число подписчиков менялось без перезагрузки страницы28.04.2020, 14:58. Показов 1321. Ответов 5 Метки ajax, javascript, php mysql (Все метки)
Мне надо чтобы число подписчиков менялось без перезагрузки страницы. Весь этот код на одной странице index.php. В переменной $subscriptions число подписчиков из базы данных. Я не знаю ajax и javascript.
////////// Кнопка
__________________
0 |
|
dontknow 189 / 125 / 60 Регистрация: 18.05.2014 Сообщений: 264 |
||||||||||||||||
|
28.04.2020, 16:08 |
2 |
|||||||||||||||
|
Каждые 3 секунды делаем запрос к бд, для определения количества подписчиков, возвращаемое значение загружаем в контейнер subs
Можно сделать получение значения по нажатию на кнопку: Кликните здесь для просмотра всего текста
Файл GetSubsCount.php: подключаемся к бд, получаем количество подписчиков, возвращаем его
0 |
|
1 / 1 / 0 Регистрация: 14.03.2019 Сообщений: 32 |
|
|
02.05.2020, 17:33 [ТС] |
3 |
|
Мне бы что-нибудь чтобы страница не перезагружалась, а число менялось сразу после нажатия кнопки и всё в базу данных отправлялось, как в яндекс дзене лайки.
0 |
|
dontknow 189 / 125 / 60 Регистрация: 18.05.2014 Сообщений: 264 |
||||||||
|
03.05.2020, 21:15 |
4 |
|||||||
|
Насколько понял что то такое нужно. Сама страница sub.html:
php скрипт sub.php:
Думаю, запросы под бд изменить не составит труда.
0 |
|
LillyMilq 1 / 1 / 0 Регистрация: 14.03.2019 Сообщений: 32 |
||||
|
04.05.2020, 14:56 [ТС] |
5 |
|||
|
Спасибо, но я не смог модифицировать этот код под себя, мне там имя вводить не нужно. Мне просто чтобы при клике менялась цифра, в sub.php у меня update этой цифры на один больше. я эту кнопку показываю только зарегистрированным юзерам. formname я сам вычисляю в sub.php, мне просто чтобы выполнялся sub.php и ajax работал.
0 |
|
dontknow 189 / 125 / 60 Регистрация: 18.05.2014 Сообщений: 264 |
||||||||
|
04.05.2020, 15:31 |
6 |
|||||||
|
РешениеТогда просто подгружаем php скрипт, который обновляет количество подписчиков в бд и выводит новое значение.
1 |

Здравствуйте, дорогие друзья. Из данной статьи вы узнаете, где взять форму подписки на канал ютуб и как ее установить к себе на блог. Такая форма способствует ускоренному набору числу ваших подписчиков на канале.
Что влечет за собой большее количество просмотров, комментариев, лайков. К тому же — это «очень удобно для пользователя», он заходит на сайт, видит эту форму и может подписаться, не переходя на сайт.
Как по мне, то такая форма будет полезна только в том случае, если вы уже знаете человека и видите у него форму подписки, можно и подписаться не глядя. А в основном, не знаю, как вы, но я сначала перехожу на канал и просматриваю его, какие видео есть, как он оформлен, что автор вписал в поле «о канале» и только если он мне понравился – подписываюсь.
Даже интуитивно, если видишь значок YouTube, с надписью «Наш канал на ЮТУБ», то возникает желание перейти и посмотреть, что же это за канал и что там есть. В отличие от формы подписки. Поэтому, я и отказался от самой формы. А там решать вам, что ставить, форму подписки или значок Ютуб.
Форма подписки на канал youtube
Если у вас еще нет своего канала, то ознакомьтесь со статьей, как зарегистрироваться на ютуб и создать свой первый канал. Если он у вас уже есть, то заходите на него и кидайте взгляд на адресную строку. 
Примечание!
Чтобы поменять адрес канала, нужно иметь не менее 500 подписчиков, канал должен существовать более 30 дней, в качестве аватарки должно стоять ваше фото и канал должен быть оформлен. Если ваш канал соответствует всем этим правилам, то заходите в настройки ютуб, в раздел дополнительно.
И здесь есть идентификатор пользователя, а напротив его должна быть кнопочка «Создать пользовательский URL», введите желаемое имя канала.
У меня получился следующий адрес.
После того, как адрес настроен, вам нужен код формы, вот он:
<iframe id="fr" style="overflow: hidden; height: 105px; width: 270px; border: 0pt none;" src="www.youtube.com/subscribe_widget?p=mikhed1991" width="300" height="150" frameborder="0" scrolling="no"></iframe>
Данный код можно подстраивать под свой шаблон. Можно указывать высоту, ширину (height: 105px; width: 270px;), задать рамку, за рамку отвечает параметр Border.
И самое главное, что нужно сделать в этой форме, так это сменить адрес канала, мой адрес выглядит так: http://www.youtube.com/subscribe_widget?p=mikhed1991. Вам нужно сменить значение после равно (=). Код вставляйте туда, где хотите видеть форму подписки для канала ютуб.
Я ставил в сайдбар справа. Чтобы установить эту форму в сайдбаре, заходите в административную панель блога, выбирайте раздел виджеты и добавляйте новый виджет с произвольным текстом.
Вставляйте отредактированный код, сохраняйте изменения и собирайте подписчиков на ютуб.
К этой статье рекомендую прочесть еще это:
Что такое ютуб, каков его потенциал?
Как легко и быстро вставить видео с YouTube к себе на сайт при помощи плагина?
Как скачать видио с ютуб к себе на компьютер и вытянуть музыку с видео?
P.S Если у вас возникли трудности со вставкой формы на сайт — описывайте свои проблемы в комментариях, будем решать. Если нужно дополнительно видео-урок, так же отписывайте в комментариях — сделаем.
С Уважением, Михед Александр.
Как вывести количество подписчиков (участников) группы, страницы или события из вконтакте
Что мне очень понравилось, так это то, что для вывода количества подписчиков не требуется использовать PHP и cURL, потому что такие вещи обычно значительно снижают скорость загрузки страницы.
Вот готовый код. Если вы хорошо разбираетесь в jQuery, то статью можете дальше не читать.
jQuery(function($){ $.ajax({ url: 'http://api.vk.com/method/groups.getById?gid=27541941&fields=members_count', dataType: "jsonp", success:function(e){ $('#vkontakte_count').html(e.response[0].members_count) } }); });
Уверен, что среди читателей моего блога есть и такие, которые не особо разбираются во всех этих кодах, поэтому специально для них я всё подробно распишу.
Шаг 1. HTML-элемент, в котором будет выводиться количество подписчиков сообщества
Это будет примерно вот такой код:
<span id="vkontakte_count">3450</span>
Вставьте его в то место сайта, где хотите вывести количество подписчиков.
Причем, это может быть любой HTML-элемент, например <div>, <span> или какой-то другой, тут важен только ID элемента (атрибут id).
Внутри лучше указать примерную цифру количества подписчиков — она будет отображаться, если по каким-то причинам API вконтакте будет недоступно.
Шаг 2. Как узнать ID группы, страницы или события вконтакте?
Это раньше в качестве URL всегда использовались id — как для групп, так и для пользователей. Теперь же, когда администраторы могут сами задавать любой (свободный) URL, всё стало немного сложнее.
Для того, чтобы узнать ID, кликните по ссылке «Рекламировать сообщество» и у вас откроется страница, ссылка которой будет http://vk.com/adscreate?page_id=6301158, где page_id и есть ID вашей группы или страницы.
Если же сообщество вам не принадлежит, то его ID можно узнать в исходном коде страницы:
Вообще, в исходном HTML-коде он встречается много где, если поискать, то вы точно его найдете.
Шаг 3. jQuery
Подробнее про подключение jQuery на сайт написано здесь.
Шаг 4. Запрос к API вконтакте
Вы можете вставить этот код прямо в HTML страницы как есть, либо в какой-нибудь js-файл, предварительно удалив теги script (в обоих случаях обязательно уже после того, как подключится jQuery).
<script> jQuery(function($){ $.ajax({ url: 'http://api.vk.com/method/groups.getById?gid=65762432&fields=members_count', // вместо 65762432 указываем свой ID dataType: "jsonp", // тип получаемых данных success:function(e){ $('#vkontakte_count').html(e.response[0].members_count) // выводим получаемый результат } }); }); </script>
И ещё кое-что.
Используя данный запрос к API, вы также можете получить и другую информацию о сообществе, для этого в параметре запроса fields надо указать:
- city
- ID города сообщества. Возвращается 0, если город в информации о сообществе не указан.
- country
- ID страны сообщества.
- description
- Описание сообщества.
- counters
- Возвращает количество фотографий в альбомах (photos), альбомов (albums), аудиозаписей (audios), видеозаписей (videos), тем (topics), документов (docs).
- start_date и end_date
- Время начала и окончания встречи (для групп и страниц не используется) в формате unixtime.
- can_post
- Если пользователь может писать на стене, возвращает 1, иначе 0.
В запросе можно указывать несколько значений параметра fields через запятую.
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Ранее я предлагал вашему вниманию статьи о том, как с помощью небольших функций, не прибегая к плагинам, вывести на WordPress-сайте текстом количество RSS-подписчиков по данным сервиса FeedBurner и количество Twitter-фолловеров.
В сегодняшнем посте я дополню данные статьи информацией о том, как красиво оформить эти счетчики с помощью технологии CSS.
Примеры
- Живой пример счетчиков вы можете наблюдать прямо на моем блоге в сайдбаре.
- Я подготовил примеры на отдельной странице с разными вариантами оформления счетчика.
HTML + PHP код
Код, который необходимо вставить в WordPress-шаблон в место вывода счетчика:
-
для RSS-счетчика:
<div class="counter"><?php feedburner_counter('название_вашего_фида'); ?></div> -
для Twitter-счетчика:
<div class="counter"><?php twitter_followers('имя_вашего_аккаунта'); ?></div>
CSS-код
Теперь займемся непосредственно оформлением с помощью CSS. Его я делал по подобию стандартного счетчика FeedBurner, который отображается в виде картинки.
Рассмотрим код на примере коричневого счетчика (.brown). Основные стили выглядят следующим образом:
.counter {
display: inline-block;
overflow: hidden;
padding: 0 5px 0 0;
margin: 0 15px 15px 0;
font: bold 11px/22px Arial, Tahoma, sans-serif;
*display: inline; /* IE6, IE7 */
*zoom: 1; /* IE6, IE7 */
color: #FFF;
background: #CA0000;
border: 1px solid #B90000;
}
.counter .count {
float: left;
padding: 0 3px;
margin: 1px 6px 0 1px;
font-size: 13px;
height: 17px;
line-height: 18px;
background: #E37979;
border: 1px solid #B90000;
border-right-color: #ECC0BD;
border-bottom-color: #ECC0BD;
}
Пустой строкой я отделил стили, который отвечают за цветового оформление счетчика. У нас получается вот такой счетчик:
Для придания счетчику красивости и объемности добавим легкую тень и закругления углов с помощью соответствующих CSS3-свойств:
.counter {
border-radius: 3px;
box-shadow: inset 0 0 2px #FFF, 1px 1px 1px rgba(0,0,0,0.15);
}
И конечный результат будет выглядеть следующим образом:
Как видите, мы написали совсем немного CSS-стилей и получили приятный глазу счетчик.
Что на счет браузеров?
Конечно же, всю гламурность, т.е. закругления и тень, можно будет увидеть только в современных браузерах, в список которых не попадают версии Internet Explorer ниже 9-й. В них вы увидите лишь плоский прямоугольник.
* * *
Вам нужно провести полный анализ сайта, проанализировать его внутренние и внешние ссылки, посмотреть на сайта глазами поискового робота? Эти и множество других полезных инструментов доступны бесплатно на сайте для веб-мастеров WebMasta.org.
столкнулась с проблемой. Не получатся динамически обновлять количество подписчиков (без перезагрузки страницы). Я только учусь, если есть другой вариант проще, можете подсказать пожалуйста
Так же есть кнопка, надпись которой меняется в зависимости от статуса (подписан/отписан)
<div class="row justify-content-center">
<div class="col-3 text-center numb">{{$followCount}}</div>
<div class="col-3 text-center numb">{{$followingCount}}</div>
</div>
<example-component follow-count="{{$followCount}}" user-id='{{ $user->id }}' follow='{{ $follow }}'></example-component>
количество подписчиков и подписок подсчитывается в контроллере
class ProfileController extends Controller
{
public function index(User $user)
{
$followCount=$user->profile->followers->count();
$followingCount=$user->following->count();
return view('profiles.index', compact('user', 'follow', 'postCount', 'followCount', 'followingCount'));
}
}
vue
<template>
<div class="container">
<div class="col-12 text-center"><button class="btn btn-primary" @click="follows" v-text="buttonText"></button></div>
</div>
</template>
<script>
export default {
props: ['userId', 'follow'],
data: function () {
return {
status: this.follow,
}
},
methods: {
follows() {
axios.post('/follow/' + this.userId)
.then(response => {
this.status =! this.status;
});
}
},
computed: {
buttonText() {
return (this.status) ? 'Folgen' : 'Abonniert';
},
}
}
</script>
так, у меня получаются следующие файлы в resources/js/components
ExampleComponent.vue
<template>
<div class="container">
<div class="col-12 text-center"><button class="btn btn-primary" @click="follows" v-text="buttonText"></button></div>
</div>
</template>
<script>
import FollowBus from 'FollowBus'
export default {
props: ['userId', 'follow', 'followCount'],
data: function () {
return {
status: this.follow,
}
},
mounded: function() {
// отслеживаем status
this.$watch('status', (newStatus, oldStatus) => {
FollowBus.$emit('follow_change', newStatus)
})
},
methods: {
follows() {
axios.post('/follow/' + this.userId)
.then(response => {
this.status =! this.status;
console.log(this.followCount);
});
}
},
computed: {
buttonText() {
return (this.status) ? 'Abonniert' : 'Folgen';
},
}
}
</script>
FollowCounter.vue
<template>
<div class="col-3 text-center numb">{{followCount}}</div>
</template>
<script>
import FollowBus from 'FollowBus'
export default {
data: function () {
return {
count: 0
}
},
mounted: function () {
// подписываемся на событие
FollowBus.$on('follow_change', (status) => {
// подгрузка при возникновении события
this.loadCounters()
})
// подгрузка при монтировании
this.loadCounters()
},
methods: {
loadCounters: function () {
axios.get(url).then((response) => {
// извлекаем данные из response.data
// this.count =
})
}
}
}
</script>
FollowBus.js
import Vue from 'vue'
export default FollowBus = new Vue();
при этом видарт ошибку Module not found: Error: Can’t resolve ‘FollowBus’
Скрипт для накрутки друзей в ВК – это программный код, который используют для отправления исходных заявок. То есть, такой вариант направлен на взаимные подписки, которые могут быть при массфолловинге.
Скрипты накрутки Вконтакте
Такой вариант уже давно перестал быть популярным, но еще используем. Главные проблемы при применении скриптов:
- сложность. Нужно вводить несколько строчек программного кода, попав в нужную строчку;
- не всегда применимы. ВК постоянно меняет код сайта, что усложняет работу с вводом сторонних комбинаций;
- вероятность блокировки. Социальная сеть может заблокировать страницу;
- не всегда работают. Проблема может быть, как в особенностях версии браузера, так и правильности ввода комбинации.
Какие коды существуют для накрутки подписчиков:
- Зайти в ВК – нажать по свободному полю: «Показать код».
- Перейти во вкладку: «Console» — вставить код:
javascript:var interval = setInterval(function(){setTimeout(‘document.getElementsByClassName(“left_label inl_bl”)[0].click()’,0);setTimeout(‘document.getElementsByClassName(“left_label inl_bl”)[3].click()’,2500);setTimeout(‘document.getElementsByClassName(“flat_button”)[1].click()’,5500);setTimeout(‘document.getElementsByClassName(“ui_header_ext_search”)[0].click()’,7000);setTimeout(‘document.getElementsByClassName(“checkbox”)[0].click()’,8000);javascript:setTimeout(‘document.getElementsByClassName(“search_item_img”)[23].click()’,10000);setTimeout(‘document.getElementsByClassName(“flat_button button_wide”)[0].click()’,14000);setTimeout(‘document.getElementsByClassName(“page_avatar_img”)[0].click()’,19000);setTimeout(‘document.getElementsByClassName(“pv_like_icon _icon”)[0].click()’,24000);setTimeout(‘document.getElementsByClassName(“pv_close_btn”)[0].click()’,29000);},30000);
(подходит для старых версий)
На добавление в друзья:
var counter_need = 40;
var timer = 10000;
(async () => { for (var i = 0; i < counter_need; i++)
{
document.getElementsByClassName(«friends_possible_link»)[i].click();
await delay();
}
console.log(«Готово!»);
})();
function delay() {
return new Promise((resolve, reject) => {
setTimeout(resolve, timer);
});
}
Как и предыдущий: нужно использовать через раздел: «Код страницы» и вставить в консоль. Многие из скриптов создаются индивидуально именно под ту версию Вконтакте, которая в данный момент. Администрацией блокируются обходные способы для пиара страницы или добавления в друзья.
Как работает на записи и подписчиков
Скрипт для накрутки подписчиков в ВК работает по принципу добавления новых пользователей через исходные заявки. Отдельно есть кода для добавления лайков и комментариев. Пользователь, которому необходимо накрутить дополнительных подписчиков, может использовать способ через хостинг с поддержкой PHP или cron.
Основной функционал скриптов:
- накрутка просмотров. Увеличивается только количество, но фактических просмотров нет;
- лайки. Отметки «Мне нравится» появляются даже от тех пользователей, которые просто посещали страницу;
- накрутка друзей. Взаимные подписки и автоматическое добавление в список товарищей.
Владелец группы или общедоступного профиля может воспользоваться таким вариантом. Но вероятнее всего, он не сработает. Есть другой, более простой способ, как накрутить подписчиков и друзей.
Простой способ: через GainStorm
Накрутка комментариев в ВК возможно с помощью сервиса GainStorm. В его функции входит создание заданий на получение лайков, подписчиков и просмотров.
Как получить подписчиков с помощью сервиса для ВК:
- Зайти на сайт – создать аккаунт.
- Нажать сверху: «Начать продвижение» — выбрать социальную сеть.
- Указать количество подписчиков или лайков.
- Запустить и подождать, пока в сообщество или на страницу будут добавлены последователи.
Чтобы запустить задачу, пользователю нужно, чтобы на счету было определенное количество монет. Это может сделать, с помощью заработка в самом gainStorm или воспользоваться пополнением счета.
То есть, чтобы получить подписчиков, пользователю необязательно пополнять счет:
- Открыть в GainStorm раздел: «Главная».
- Сверху: «Заработать» — выполнять задания.
Под каждой задачей находится количество монет, которое будет начислено. В зависимости от сложности, повышается оплата.
Опасность скриптов и альтернатив
Скрипт для накрутки сообщений, подписчиков – может стать причиной блокировки в ВК. Социальная сеть блокирует такие способы получения аудитории с 2014 года. Что может произойти, если воспользоваться скриптом:
- блокировка сообщества. Если код был направлен на получение аудитории для группы;
- заморозка профиля. Если превышено максимальное количество добавлений в друзья;
- взлом страницы. Скрипты, которые были созданы недобросовестными разработчиками.
Чтобы снизить вероятность блокировки – есть GainStorm. Пользователь может указать нужное количество друзей, которое должно соответствовать лимитам.
Также, в отличие от альтернативных способов пиара, владельцу страницы необязательно следить за накруткой. Сервис работает в автоматическом режиме и не подключается к самому профилю.
В первой части этой серии мы рассмотрели, как программно получить количество лайков на странице Facebook, а также подписчиков в Twitter и Google+. К концу мы создали три вспомогательные функции PHP, чтобы упростить поиск в социальных сетях.
Эти функции принимают в качестве аргумента имя пользователя страницы Facebook, имя пользователя Twitter и имя пользователя или идентификатор Google+ соответственно и, в свою очередь, возвращают число лайков или подписчиков.
В этой заключительной части серии мы разработаем виджет социального профиля, который ссылается на страницу Facebook, Twitter и профиль Google+. Виджет также будет отображать количество лайков на странице Facebook, а также количество подписчиков в Twitter и Google+.
Ниже приведен скриншот виджета, который будет построен в конце этого урока.
Кодирование виджета
Как и во всех плагинах WordPress, заголовок файла, содержащий метаинформацию (такую как Имя, Версия, Автор и т. Д.) Относительно плагина, должен находиться в начале файла плагина.
Ниже приведен заголовок нашего плагина виджета.
|
1 2 3 4 5 6 7 8 |
<?php /* * Plugin Name: Tuts+ Social Profile Widget * Plugin URI: http://code.tutsplus.com * Description: Social widget that links to various social media profiles * Author: Agbonghama Collins * Author URI: http://tech4sky.com */ |
Чтобы создать виджет WordPress, необходимо WP_Widget стандартный класс WP_Widget и включить необходимые методы в дочерний класс. Наконец, дочерний класс виджета регистрируется и подключается к WordPress.
Создайте дочерний класс, расширяющий родительский класс WP_Widget .
|
1 2 |
class Tutsplus_Social_Profile extends WP_Widget { // … |
Дайте виджету имя и описание, используя __construct() .
|
1 2 3 4 5 6 7 8 |
function __construct() { parent::__construct( ‘Tutsplus_Social_Profile’, __( ‘Social Networks Profiles’, ‘translation_domain’ ), array( ‘description’ => __(‘Links to Author social media profile’, ‘translation_domain’ ) ) ); } |
На данный момент пришло время воспользоваться вспомогательными функциями, которые мы создали в последнем посте, чтобы мы могли отображать Лайки и Подписчиков из Facebook, Twitter и Google+.
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public function twitter_count( $username ) { require_once ‘TwitterAPIExchange.php’; // Set access tokens here — see: https://dev.twitter.com/apps/ $settings = array( ‘oauth_access_token’ => «211978035-fedllb5xEQhnoHxAsK3259VIOhsFrLuRUyR4Atvr», ‘oauth_access_token_secret’ => «7Nev2EyOxoHAVgb8Y5VHPRYuKbKomFqe3kf1ouOHtmHVs», ‘consumer_key’ => «MsHrMc5B9dZyP8mgqV0m2JGsq», ‘consumer_secret’ => «YhIdWozaAb9cvKcjKqamEcN2GgSBrzqfWZpIvKSeYVvCQsb8LL» ); $url = ‘https://api.twitter.com/1.1/users/show.json’; $getfield = ‘?screen_name=’ . $request_method = ‘GET’; $twitter_instance = new TwitterAPIExchange( $settings ); $follow_count = $twitter_instance ->setGetfield( $getfield ) ->buildOauth( $url, $request_method ) ->performRequest(); $count = json_decode( $follow_count, true ); return $count[‘followers_count’]; } |
|
1 2 3 4 |
public function facebook_count( $username ) { $facebook_count = file_get_contents( ‘http://graph.facebook.com/’ . $username ); return json_decode( $facebook_count )->likes; } |
|
1 2 3 4 |
public function googleplus_count( $username, $apikey = ‘AIzaSyBHm7J9qLupabYWaxLg_9_UZPbxWdso2vY’ ) { $google = file_get_contents( ‘https://www.googleapis.com/plus/v1/people/’ . $username . ‘?key=’ . $apikey ); return json_decode( $google ) -> circledByCount; } |
В twitter_count() выше методе twitter_count() жетон доступа к OAuth-приложению Twitter, секретный токен-ключ, ключ-потребитель и секрет-потребитель жестко закодированы в методе.
Вам придется изменить их на учетные данные OAuth вашего приложения Twitter.
То же самое касается ключа API Google Plus в googleplus_count() .
Параметры настроек виджета будут состоять из пяти полей формы, которые содержат заголовок виджета, имена пользователей Facebook, Twitter и Google+, как показано на рисунке ниже.
Метод form() ниже создает форму Widget.
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public function form( $instance ) { isset ( $instance[‘title’] ) ? empty ( $instance[‘title’] ) ? isset ( $instance[‘facebook’] ) ? isset ( $instance[‘twitter’] ) ? isset ( $instance[‘google’] ) ? ?> <p> <label for=»<?php echo $this->get_field_id(‘title’); ?>»><?php _e(‘Title:’); <input class=»widefat» id=»<?php echo $this->get_field_id( ‘title’ ); ?>» name=»<?php echo $this->get_field_name( ‘title’ ); ?>» type=»text» value=»<?php echo esc_attr( $title ); ?>»> </p> <p> <label for=»<?php echo $this->get_field_id(‘facebook’); ?>»><?php _e(‘Facebook Page Username:’); <input class=»widefat» id=»<?php echo $this->get_field_id(‘facebook’); ?>» name=»<?php echo $this->get_field_name(‘facebook’); ?>» type=»text» value=»<?php echo esc_attr( $facebook ); ?>»> </p> <p> <label for=»<?php echo $this->get_field_id(‘twitter’); ?>»><?php _e(‘Twitter Username:’); <input class=»widefat» id=»<?php echo $this->get_field_id(‘twitter’); ?>» name=»<?php echo $this->get_field_name(‘twitter’); ?>» type=»text» value=»<?php echo esc_attr( $twitter ); ?>»> </p> <p> <label for=»<?php echo $this->get_field_id(‘google’); ?>»><?php _e(‘Google+ Username or ID:’); <input class=»widefat» id=»<?php echo $this->get_field_id( ‘google’ ); ?>» name=»<?php echo $this->get_field_name( ‘google’ ); ?>» type=»text» value=»<?php echo esc_attr( $google ); ?>»> </p> <?php } |
Когда значения вводятся в поле формы, их необходимо сохранить в базе данных. Метод update() очищает значения форм, удаляя вредоносные данные, и сохраняет очищенные значения в базу данных.
|
01 02 03 04 05 06 07 08 09 10 11 12 |
public function update( $new_instance, $old_instance ) { $instance = array(); $instance[‘title’] = ( ! empty ( $new_instance[‘title’]) ) ? $instance[‘facebook’] = ( ! empty ( $new_instance[‘facebook’]) ) ? $instance[‘twitter’] = ( ! empty ( $new_instance[‘twitter’]) ) ? $instance[‘google’] = ( ! empty ( $new_instance[‘google’]) ) ? $instance[‘linkedin’] = ( ! empty ( $new_instance[‘linkedin’]) ) ? return $instance; } |
Далее идет метод widget() который отображает ссылки на профили в социальных сетях вместе с количеством лайков и подписчиков в клиентской части WordPress.
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
$title = apply_filters( ‘widget_title’, $instance[‘title’] ); $facebook = $instance[‘facebook’]; $twitter = $instance[‘twitter’]; $google = $instance[‘google’]; // social profile link $social_widget = ‘ <ul class=»diverz»> <li class=»diverz facebookz»> <a href=»https://www.facebook.com/’ . $facebook . ‘»> <div class=»main-diverz»> <i class=»facebookz fa fa-facebook»></i> <br/> <big class=»spanz facebookz»>facebook</big> </div> </a> <div class=»sub-diverz»> <strong>’ . $this->facebook_count( $facebook ) . <br/>fans </div> </li> <li class=»diverz twitterz»> <a href=»https://www.twitter.com/’ . $twitter . ‘»> <div class=»main-diverz»> <i class=»twitterz fa fa-twitter»></i><br/> <big class=»spanz twitterz»>twitter</big> </div></a> <div class=»sub-diverz»><strong>’ . $this->twitter_count(‘tech4sky’) . </div> </li> <li class=»diverz googlez»> <a href=»https://plus.google.com/u/0/’ . $google . ‘»> <div class=»main-diverz»> <i class=»googlez fa fa-google-plus»></i><br/> <big class=»spanz googlez»>google+</big> </div></a> <div class=»sub-diverz»><strong>’ . $this->googleplus_count( $google ) . </div> </li> </ul>’; echo $args[‘before_widget’]; if ( !empty($title) ) { echo $args[‘before_title’] . } echo $social_widget; echo $args[‘after_widget’]; } |
Мы закончили с включением необходимых методов и кодов в класс, поэтому нам осталось только добавить скобку закрывающего класса.
Класс виджета Tutsplus_Social_Profile необходимо зарегистрировать с помощью функции WordPress register_widget , а затем подключить к widgets_init .
Без этого виджет не будет распознаваться WordPress.
|
1 2 3 4 |
function register_tutsplus_social_profile() { register_widget( ‘Tutsplus_Social_Profile’ ); } add_action( ‘widgets_init’, ‘register_tutsplus_social_profile’ ); |
Чтобы придать виджету красивый вид, ниже приведен CSS-код виджета, который также включает импортированный файл таблицы стилей значков Font Awesome .
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
@import «//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css»; social-icons { font-size: 21px; } ul .diverz { width: 80px; border: 1px solid #e3e3e3; list-style-type: none; overflow: hidden; padding: 4px 2px; margin: 2px 2px !important; background-color: #eee; } .main-diverz { font-size: 16px; padding: 2px; } .sub-diverz { color: #000; background-color: #FFFFFF; margin: 2px; padding: 2px; } .diverz { float: left; text-align: center; } .spanz { font-size: 15px; vertical-align: middle; } .facebookz, .facebookz a { color: #3B5998; } .twitterz, .twitterz a { color: #00abe3; } .main-diverz i { font-size: 20px; } |
Сохраните файл CSS с именем tutsplus-social-profile-widget.css который должен находиться в корневой папке плагина.
Наконец, нам нужно поставить CSS-файл в WordPress:
|
1 2 3 4 5 |
// enqueue css stylesheet function tutsplus_social_profile_widget_css() { wp_enqueue_style( ‘social-profile-widget’, plugins_url( ‘tutsplus-social-profile-widget.css’, __FILE__ ) ); } add_action( ‘wp_enqueue_scripts’, ‘tutsplus_social_profile_widget_css’ ); |
Ура — мы закончили кодирование нашего виджета социального профиля
Предлагаемые улучшения
В классе виджетов учетные данные Twitter OAuth и ключ API Google+ были жестко запрограммированы для класса. При разработке такого плагина должна быть создана страница настроек, которая будет содержать форму, которая будет сохранять ключи OAuth и API в базе данных WordPress, которые затем будут извлекаться и использоваться классом.
В форме виджета отсутствует механизм проверки на стороне клиента, который пригодится для обеспечения ввода соответствующих значений формы. Прочтите мою статью о проверке формы на стороне клиента с помощью HTML5, чтобы узнать, как можно выполнить проверку.
Виджет только функции Facebook, Twitter и Google+. Вы можете расширить класс виджетов и включить другие социальные сети.
В правом верхнем углу этой страницы находится ссылка для загрузки файла плагина Widget. Идите вперед и используйте на своем сайте WordPress, а также прочный код, чтобы полностью понять, как он работает.
Любые отзывы и вопросы приветствуются в разделе комментариев!

Сообщение было отмечено LillyMilq как решение












