Сышышь ты, выходи сюда,
поговорим !

Как получить количество скачиваний темы WordPress

Опубликовано: 06.09.2018

видео Как получить количество скачиваний темы WordPress

ICO E Chat Bounty

Если вы разрабатываете темы для WordPress и выкладываете их в директорию WordPress.org, вам наверняка захочется опубликовать информацию о вашей теме на своем сайте и указать количество скачиваний, рейтинг и другую информацию.



У WordPress.org есть собственный API, который позволяет получать определенную информацию о темах в директории. Этот API используется в ядре WordPress при поиске и установке тем, во время проверки на обновления и т.д. Его же мы можем использоваться для того, чтобы получить необходимые нам показатели:


Скачать музыку и видео с любого сайта 100% Супер!

include_once ABSPATH . 'wp-admin/includes/theme.php'; $api = themes_api( 'theme_information', array( 'slug' => 'twentyfourteen' ) );

Для работы с темами через API WordPress.org нам потребуется файл wp-admin/includes/theme.php. Для примера возьмем популярную тему Twenty Fourteen. По ее названию мы получаем объект $api, который содержит в себе всю информацию о теме. Ниже представлены несколько примеров, а для получения полного списка свойств, воспользуйтесь функцией var_dump().

Общее количество скачиваний темы можно получить с помощью свойства downloaded:

printf( 'Тему Twenty Fourteen скачали %d раз.', $api->downloaded );

Дата последнего обновления и версия хранятся в last_updated и version:

printf( 'Последняя версия Twenty Fourteen: %s.', $api->version ); printf( 'Последнее обновление: %s.', $api->last_updated );

С рейтингом немного сложнее, поскольку API выдает рейтинг в процентах, а на WordPress.org указан рейтинг по 5-ти бальной шкале:

$rating = ( $api->rating / 100 ) * 5; printf( 'Рейтинг Twenty Fourteen: %.1f', $rating ); printf( 'Всего проголосовавших: %d', $api->num_ratings );

Не забывайте, что каждый запрос к API WordPress.org это дорогой вызов HTTP на внешний ресурс, который замедляет работу вашего сайта, а при большом количестве посетителей может создать существенную нагрузку на ваш хостинг-аккаунт .

Для того, чтобы этого избежать, воспользуйтесь кэшированием , и в данном случае хорошо подойдет API для транзитного кэширования WordPress — это кэширование произвольных значений на определенное время.

Рассмотрим простой пример:

function get_my_theme_info( $slug ) { $cache_key = md5( 'my_theme_info_' . $slug ); $api = get_transient( $cache_key ); if ( $api ) return $api; include_once ABSPATH . 'wp-admin/includes/theme.php'; $api = themes_api( 'theme_information', array( 'slug' => $slug ) ); set_transient( $cache_key, $api, 12 * HOUR_IN_SECONDS ); return $api; }

Таким образом при первом обращении к новой функции get_my_theme_info(), WordPress выполнит API запрос и закэширует результат на 12 часов, и при последующем обращении к этой же функции, результат будет сразу выдан из транзитного кэша.

Если у вас возникнут вопросы при работе с API WordPress.org, оставьте комментарий и мы обязательно вам ответим.

rss