Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71

Выводить код из плагина только на странице записей, а не на всех, как сейчас

26.11.2016, 15:25. Показов 1835. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Прошу сильно не пинать :-)
Код из файла wp-postratings.php, который находится в плагине WP-PostRatings Данный плагин добавляет возможность оценивать статью, добавляя звёзды.
Как я понимаю, эти строки отвечают за внедрение в тело страницы необходимого кода для работы плагина. Но код этот внедряется везде, а в моём случае он нужен только на страницах записей.
Как он должен быть изменён, чтобы добавление происходило только на страницах записей?

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
28
### Function: Enqueue Ratings JavaScripts/CSS
add_action('wp_enqueue_scripts', 'ratings_scripts');
function ratings_scripts() {
    $postratings_max = intval(get_option('postratings_max'));
    $postratings_custom = intval(get_option('postratings_customrating'));
    $postratings_ajax_style = get_option('postratings_ajax_style');
    $postratings_javascript = '';
    if($postratings_custom) {
        for($i = 1; $i <= $postratings_max; $i++) {
            $postratings_javascript .= 'var ratings_'.$i.'_mouseover_image=new Image();ratings_'.$i.'_mouseover_image.src=ratingsL10n.plugin_url+"/images/"+ratingsL10n.image+"/rating_'.$i.'_over."+ratingsL10n.image_ext;';
        }
    } else {
        $postratings_javascript = 'var ratings_mouseover_image=new Image();ratings_mouseover_image.src=ratingsL10n.plugin_url+"/images/"+ratingsL10n.image+"/rating_over."+ratingsL10n.image_ext;';
    }
    wp_enqueue_script('wp-postratings', plugins_url('wp-postratings/postratings-js.js'), array('jquery'), null, true);
    wp_localize_script('wp-postratings', 'ratingsL10n', array(
        'plugin_url' => plugins_url('wp-postratings'),
        'ajax_url' => admin_url('admin-ajax.php'),
        'text_wait' => __('Please rate only 1 post at a time.', 'wp-postratings'),
        'image' => get_option('postratings_image'),
        'image_ext' => RATINGS_IMG_EXT,
        'max' => $postratings_max,
        'show_loading' => intval($postratings_ajax_style['loading']),
        'show_fading' => intval($postratings_ajax_style['fading']),
        'custom' => $postratings_custom,
        'l10n_print_after' => $postratings_javascript
    ));
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2016, 15:25
Ответы с готовыми решениями:

Как вывести определенный текст только на странице всех новостей
Появилась проблема, нужно вывести определенный блок на странице последних новостей, адрес у нее такой /index.php?do=lastnews Как это...

Как в joomla выводить на странице меню для одной страницы, а для другой не выводить
Здравствуйте, скажите пожалуйста, как на joomla 1.5 можно выводить меню для отдельных страниц?

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

8
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71
30.11.2016, 20:25  [ТС]
Никто не в силах мне помочь?
0
 Аватар для shevan
163 / 164 / 78
Регистрация: 06.09.2015
Сообщений: 632
30.11.2016, 20:31
UsernameN, так вроде, вот код для вставки

PHP
1
<?php if(function_exists('the_ratings')) { the_ratings(); } ?>
Если его использовать только в single.php, то плагин будет работать только в записях.
1
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71
01.12.2016, 00:56  [ТС]
shevan
Спасибо что откликнулись.

У меня видимо скин мудрёный и я как не пытался разместить код, в итоге разместил его в файле content.php вот таким вот образом:
PHP
1
<?php if ( is_single() ) : ?><?php if(function_exists('the_ratings')) { the_ratings(); } ?><?php endif; ?>
В итоге он отображается именно там где нужно, а именно под статьёй. а после идут закрывающие теги области статьи
HTML5
1
2
</footer>
</article>
А в single.php не вставить т.к. звёздочки уже будут за пределами статьи. Беда просто какая то


Да, и может я не совсем правильно выразился. Но мне необходимо избавиться вот от этого кода:

JavaScript
1
2
3
4
5
6
7
<script type='text/javascript'>
/* <![CDATA[ */
var ratingsL10n = {"plugin_url":"https:\/\/site.com\/wp-content\/plugins\/wp-postratings","ajax_url":"https:\/\/site.com\/wp-admin\/admin-ajax.php","text_wait":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u0443\u0439\u0442\u0435 \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.","image":"stars_flat(png)","image_ext":"png","max":"5","show_loading":"0","show_fading":"0","custom":"0"};
var ratings_mouseover_image=new Image();ratings_mouseover_image.src=ratingsL10n.plugin_url+"/images/"+ratingsL10n.image+"/rating_over."+ratingsL10n.image_ext;;
/* ]]> */
</script>
<script type='text/javascript' src='https://site.com/wp-content/plugins/wp-postratings/postratings-js.js'></script>
который добавляется в тело страниц: на главной странице, в категориях, на 404 странице да и вообще везде.
Он там совершенно не нужен т.к. самого голосования (звёздочек) на этих страницах нет и не будет. Звёздочки подключены только на странице записей.

А добавляется он, скорее всего, тем php кодом, который я привёл в первом поcте. Я так думаю что надо обернуть какую то часть кодом is_single, но не будучи программистом мне не справится
0
 Аватар для shevan
163 / 164 / 78
Регистрация: 06.09.2015
Сообщений: 632
01.12.2016, 17:16
UsernameN, есть способ отключить скрипты плагина, но он более геморройный и менее правильный

Напиши лучше, что за тему используешь или сайт покажи, и мы подскажем куда включить код.
0
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71
01.12.2016, 18:09  [ТС]
shevan
О используемой теме скажу, это Iconic One версии 1.7.7 с собственноручно внесёнными изменениями (мелких, но много), потому то на 1.7.8 не обновлялся. И проект очень молодой, надо концентрироваться на контенте и коде, который напрямую отвечает за загрузку страницы.

А сам сайт показать не могу - боюсь сглазить. Молодой проект очень, первый опыт
Сейчас и так часто сканят его на уязвимые плагины, вижу обращения по несуществующим ссылкам через плагин, отслеживающий 404 ошибки...
0
 Аватар для shevan
163 / 164 / 78
Регистрация: 06.09.2015
Сообщений: 632
01.12.2016, 20:07
UsernameN, так у тебя уже проверка в коде is_single, должно работать если нет ошибки в коде

обе if инструкции закрыл?
0
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71
01.12.2016, 22:32  [ТС]
shevan

Стоп, стоп, стоп.

Вот эта строчка <?php if ( is_single() ) : ?><?php if(function_exists('the_ratings')) { the_ratings(); } ?><?php endif; ?> выводит следующий код:

HTML5
1
<div id="post-ratings-121" class="post-ratings" itemscope="" itemtype="http://schema.org/Article" data-nonce="d927a6021d"><img id="rating_121_1" src="https://site.com/wp-content/plugins/wp-postratings/images/stars_flat(png)/rating_off.png" alt="Ужасная статья" title="Ужасная статья" onmouseover="current_rating(121, 1, 'Ужасная статья');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;"><img id="rating_121_2" src="https://site.com/wp-content/plugins/wp-postratings/images/stars_flat(png)/rating_off.png" alt="Так себе статья" title="Так себе статья" onmouseover="current_rating(121, 2, 'Так себе статья');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;"><img id="rating_121_3" src="https://site.com/wp-content/plugins/wp-postratings/images/stars_flat(png)/rating_off.png" alt="Нормальная статья" title="Нормальная статья" onmouseover="current_rating(121, 3, 'Нормальная статья');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;"><img id="rating_121_4" src="https://site.com/wp-content/plugins/wp-postratings/images/stars_flat(png)/rating_off.png" alt="Хорошая статья" title="Хорошая статья" onmouseover="current_rating(121, 4, 'Хорошая статья');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;"><img id="rating_121_5" src="https://site.com/wp-content/plugins/wp-postratings/images/stars_flat(png)/rating_off.png" alt="Отличная статья!" title="Отличная статья!" onmouseover="current_rating(121, 5, 'Отличная статья!');" onmouseout="ratings_off(0, 0, 0);" onclick="rate_post();" onkeypress="rate_post();" style="cursor: pointer; border: 0px;"> оцените материал<br><span class="post-ratings-text" id="ratings_121_text" style="display: none;"></span><meta itemprop="headline" content="ЗАГОЛОВОК СТАТЬИ"><meta itemprop="description" content="КОНТЕНТ СТАТЬИ (ОТРЫВОК)"><meta itemprop="datePublished" content="ДАТА СТАТЬИ"><meta itemprop="url" content="URL СТАТЬИ"></div>

А чтобы этот код сработал (голосование за статью количеством звёзд, реализованном на ajax) добавляется тот, что приведён в обсуждении. Я так понимаю он в любом случае добавляется на ВСЕ страницы (на всякий случай). Но мне вспомогательный код нужен только на страницах записей.
0
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 71
03.12.2016, 12:39  [ТС]
Мне подсказали решение, добавив условие проверки is_singular() https://codex.wordpress.org/Fu... s_singular
PHP
1
2
3
4
5
6
7
....
function ratings_scripts() {
 
    if( ! is_singular('post') ) return false;
 
    $postratings_max = intval(get_option('postratings_max'));
....
Вопрос отмечаю решённым :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2016, 12:39
Помогаю со студенческими работами здесь

Как отключить действие плагина на определенной странице?
Приветствую. Можно ли как то исключить из хидера размещаемые плагином скрипты на определенной странице? Добавлено через 19 часов 54...

Как подключить JavaScript на отдельно взятой странице без плагина?
Необходимо разместить скрипт только на одной странице сайта для подсчёта результатов теста. &lt;input type=&quot;button&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru