Домой WordPress WordPress: Вопросы и ответы Изменение параметров в js
14ответ(ов) в теме
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
1
12:12

Приветствую.
Появилась необходимость добавлять при каждом вызове скрипта id записи. Но не селен в js, как и в остальном))

<!-- Yandex.RTB *****-->
<div id="yandex_rtb_R-A-******"></div>
<script type="text/javascript">
    (function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
            Ya.Context.AdvManager.render({
                blockId: "R-A-*****",
                renderTo: "yandex_rtb_R-A-******-3",
				pageNumber: 1,
                async: true
            });
        });
        t = d.getElementsByTagName("script")[0];
        s = d.createElement("script");
        s.type = "text/javascript";
        s.src = "//an.yandex.ru/system/context.js";
        s.async = true;
        t.parentNode.insertBefore(s, t);
    })(this, this.document, "yandexContextAsyncCallbacks");
</script>

Можно как-то устроить, что бы сюда вставлялся id записи вместо 3 и 1
renderTo: "yandex_rtb_R-A-******-3",
pageNumber: 1,

Редакции сообщения
11.04.2019 12:25garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 4 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
12:26

Привет. А в урл есть id страницы?

window.location содержит части урл
например window.location.pathname и регуляркой спарсить.

Можно нужный id и через php передавать в js:

$id = $post->ID;
wp_localize_script( 'зависимость_к_скрипту', 'my_id', $id );

Вы не можете просматривать опубликованные ссылки

а потом уже из глобальной переменной my_id тебе будет доступен переданный $post->ID

1
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
3
12:31

Владимир спасибо.
Нет в урле записи ID, точнее он меняется транслитом, если я тебя правильно понял.
Я тут пытаюсь понять пока

Вы не можете просматривать опубликованные ссылки

Должен убежать на часок и потом продолжу.
Еще раз спасибо, отпишусь чуть по позже.

0
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
4
12:35

И еще как вариант.
А если дополнить скрипт и вместо 1 и 3 добавлять просто уникальный 3-х значный номер, рандомно. Такое наверно возможно и проще на js?

Редакции сообщения
11.04.2019 12:35garryПричина: не указано
11.04.2019 12:35garryПричина: не указано
0
Preci
не в сети 19 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1646
5
12:44

Есть же js переменная Rcl.post_ID - там id поста

0
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
6
12:46

Preci сказал(а)
Есть же js переменная Rcl.post_ID - там id поста

Спасибо Preci, я сейчас тупо не успеваю даже толком ответить. Но пока просто не понимаю как это организовать в js в это выше коде.

0
Вова (Otshelnik-Fm)
не в сети 4 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
7
13:01

Preci сказал(а)
Есть же js переменная Rcl.post_ID - там id поста

я не стал ее давать - т.к. тут вопрос в ветке про вордпресс. Там реколл может быть и не установлен.
Но способ в одну строчку, что я дал, добавить свою переменную в js - отлично сработает без оглядки на сторонние плагины.

1
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
8
13:45

Мне бы как раз сейчас подошло бы решение в связке с RCL. Но не понял как применить пока Rcl.post_ID.
Но и Владимира решение так же в итоге надо будет, без привязки, так же буду думать.

0
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
9
14:19

Не нашел пока описания Rcl.post_ID, если есть где то или примерчик, буду благодарен, а то уже запутался))
А с первым примером от Владимира, еще больше запутался))

Редакции сообщения
11.04.2019 14:20garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 4 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
15:00

в скрипте

console.log(Rcl.post_ID);
выведешь в консоль браузера id записи. Это обычный js - работай с ним как с js-переменной

Вы не можете просматривать опубликованные ссылки

Глобальная переменная Rcl содержит много полезного

1
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
11
15:03

Буду пытаться разобраться, спасибо)

0
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
12
06:30

Все оказалось не просто, точнее для меня не просто))
Суть в том, что вся эта фигня должна была заработать в подгружающейся ленте постов и по этой причине, возможно, не все варианты работали. Так, как не все загружается еще раз на странице.
Директ с недавнего времени сделал рекламу в бесконечной ленте, но как писал выше, надо менять номера.
В общем, мне помогло вот такое.

global $current_screen, $post;
$yw_pstid = $post->ID;

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

0
Вова (Otshelnik-Fm)
не в сети 4 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
13
09:57

$current_screen - глобальная эта лишняя в коде, думаю. Она определяется только для админки

Вы не можете просматривать опубликованные ссылки
1
garry
не в сети 58 минут
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2935
14
10:24

Otshelnik-Fm сказал(а)
Она определяется только для админки

Точно, спасибо. Это я вчера что-то еще хотел, но полноценный плагин уже время не осталось сделать вчера.))

0
Вы не имеете права на публикацию сообщений в этой теме