Задача. Необходимо на книжном сайте вывести рейтинг книги с ЛитРеса. Т.е. при переходе на страницу книги должен где-то в макете выводиться рейтинг именно этой книги на Литресе.
Решение. В данном случае нужно использовать PHP в шаблоне страниц.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php // Если появятся нечитабельный текст, можно добавить строчку кода header('Content-Type: text/html; charset=windows-1251'); // Функция получения кода страницы со стороннего сайта $content = file_get_contents('http://donor-site.com/page'); // Определение начала необходимого фрагмента $pos = strpos($content, '<div class="start">'); // Удаление всего до необходимого фрагмента $content = substr($content, $pos); // Определение конеца нужного фрагмента $pos = strpos($content, '</div>'); // Удаление нужного количества символов от конца фрагмента $content = substr($content, 0, $pos); // Удаление ненужного куска контента из взятого фрагмента $content = str_replace('текст, который нужно вырезать','', $content); // Вывод полученный контент echo $content; ?> |
Код №2 написан конкретно под задачу вывода рейтинга с Литрес на странице своего книжного сайта. У нас на сайте при создании страницы с книгой есть дополнительное поле, куда вставляется id книги на Литресе (в примере кода это id_book_ltrs), а данные из этого поля мы уже подставляем для формирования партнерской ссылки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php //Рейтинг с Литреса $link = get_field('id_book_ltrs'); $linklitres = 'https://www.litres.ru/' . $link . '/'; if( $link): $content = file_get_contents($linklitres); $pos = strpos($content, '<div class="rating-number bottomline-rating"'); $content = substr($content, $pos); $pos = strpos($content, '</div>'); $content = substr($content, 0, $pos); $content = $content . '</div>'; echo '<div class="ratinglitres"><div style="font-weight: 700;color:#fff;">Лит<span style="color: #ff4c00;font-weight: 600;">Рес</span></div>' . $content . '</div>'; endif; ?> |
Пояснения к Коду №2
get_field('id_book_ltrs')
— получение id книги, которое берется на ЛитРесе для партнерской ссылки. На этом сайте настроено дополнительное поле через плагин ACF и прописывается при создании страницы с книгой.$content = $content . '</div>'
— добавлен закрывающий div, т.к. конец из strpos не включается в $content.echo '<div class="ratinglitres"><div style="font-weight: 700;color:#fff;">Лит<span style="color: #ff4c00;font-weight: 600;">Рес</span></div>' . $content . '</div>'
— при выводе контента обернули $content в div’ы для настройки своих стилей.