За последние 24 часа нас посетили 23724 программиста и 1665 роботов. Сейчас ищут 1230 программистов ...

счётчик просмотров на php

Тема в разделе "Wordpress", создана пользователем WarJohn, 6 дек 2015.

  1. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Всем доброго времени суток. У меня сложилась такая проблема. У меня на блоге (блог на wordpress) стоял счётчик просмотров постов, но он так же считал и админа. Недавно я нашёл счётчик, который исключает админа и заменил им старый, после этого в single.php перестали выводиться посты. Объясниет пожалуйста кто нибудь в чём может крыться причина и как её побороть. Кстати, когда возвращаю старый счётчик, всё становиться на свои места.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    WarJohn wordpress большая программа, так что нужно смотреть код второго счётчика как минимум, обычно чтобы такое сделать, надо понимать как работают программы.
    Сейчас твой вопрос выглядит так: у меня машина делает дзынь дзынь, как починить?
    Очень обширный вопрос для форума (и мало данных), с такой формулировкой лучше в раздел free-lance там за деньги сделают.

    Мало кто захочет просто так ставить wordpress, потом счётчик и разбираться в чём дело.
    Тут либо учат или подсказываю что-то простое.
    Например ты нашёл проблему и знаешь какой кусок кода отвечает за вывод постов, но как её исправить тут нужна помощь.
    Попробуй сравнить файл single.php из первого счётчика и из второго.
     
  3. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Да сам single.php не меняется, там только вызов функции добавляется и всё. Там скорее всего проблема с выборкой из БД, просто скорее всего старый счётчик в бд создавал своё поле, а новый своё, вот выборка и падает. А написал я сюда потому что может у кого то такая же проблема была. По поводу нехватки информации, так я могу обе функции счётчиков залить, в них принцип один, различие только в переменных и ,как я понимаю, в выборке из бд.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Рассуждаешь логично. Осталось проверить с помощью отладки.

    Сам сейчас ловлю баги при переносе клиентского WP на новое место. Ох нелегкая это работа )
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот это и есть изменения single.php. Можешь два single.php выложить, от первого счётчика и от второго, возможно этого хватит чтобы понять в чём причина.
     
  6. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    эм, а как сюда файлы прикреплять?
     
  7. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    либо воспользуйся различными файловыми хостингами, либо, если кода не очень много, залей их в теги
    Код ( (Unknown Language)):
    1. php[/b]]тут код
     
  8. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    это single.php со старым счётчиком
    Код (PHP):
    1. <? setPostViews(get_the_ID()); ?>
    2. <? get_header();?>
    3. <div class="container">
    4. <? if(have_posts()): while(have_posts()): the_post();?>
    5. <div class="post">
    6. <div class="postTitle">
    7. <h2><? the_title();?></h2>
    8. </div>
    9. <div class="postInfo">
    10. <? the_date();?> |      
    11. <? echo getPostViews(get_the_ID());//вывод количества просмотров ?>
    12. </div>
    13. <div class="entry">
    14. <? the_content();?>
    15. </div>
    16. </div>
    17. </div>
    18. <? endwhile; endif;?>
    19. <? comments_template('', true);?>
    20. </div>
    21. <? include('sidebar.php');?>
    22. <? get_footer();?>
    а это single.php с новым счётчиком
    Код (PHP):
    1. <? setPostViews(get_the_ID()); ?>
    2. <? get_header();?>
    3. <div class="container">
    4. <? if(have_posts()): while(have_posts()): the_post();?>
    5. <div class="post">
    6. <div class="postTitle">
    7. <h2><? the_title();?></h2>
    8. </div>
    9. <div class="postInfo">
    10. <? the_date();?> |      
    11. <?php echo get_post_meta ($post->ID,'views',true); //вывод количества просмотров ?>
    12. </div>
    13. <div class="entry">
    14. <? the_content();?>
    15. </div>
    16. </div>
    17. </div>
    18. <? endwhile; endif;?>
    19. <? comments_template('', true);?>
    20. </div>
    21. <? include('sidebar.php');?>
    22. <? get_footer();?>
    как видно разница только в одной строке. Код самих счётчиков естественно разнится.

    Добавлено спустя 52 секунды:
    я строки кода привёл к левому краю, потому как когда копировал они как то странно выстроились
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    очевидно новый счетчик должен заполнять атрибут views у поста — загляни в таблицу wp_postmeta, поймешь что это и есть ли эти данные.

    я бы глобально поискал слово 'views' в кавычках. где-то оно должно писаться. оно либо не пишется, либо не читается )))
     
  10. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Я правильно понял? Оба счётчика используют в бд поле "views", но последний просто не может его найти или что то в этом роде?

    Добавлено спустя 4 минуты 23 секунды:
    кое что наковырял в коде нового счётчика. $meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров.
    Вот в бд в wp_postmeta как раз и есть $meta_key. К сожалению моих знаний пока не хватает, что бы связать всё воедино и понять, как всё исправить. Подскажите, что нужно сделать?
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    нет. я могу только сказать про второй фрагмент кода: он пытается читать мета-поле сообщения, на этом всё.

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

    Добавлено спустя 2 минуты 38 секунд:
     
  12. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    А можно подсказку где глобально искать, в бд или самом коде счётчика? И если его найду, что мне делать дальше?
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    искать в файлах плагина.
    откуда я знаю что дальше, бро?! ты расчитывал на готовое решение? — извиняй! я говорю что сам бы начал с этого, а после наверное будет понятно - отладка, временный вывод промежуточных результатов…
    у тебя есть счетчик. где он хранится понятно. смотришь, а есть ли это значение реально? а где он должен изменяться? а это место реально когда-нибудь вызывается? если нет — почему? шаг за шагом правильные вопросы приводят к правильному результату. и отвечаешь на них ты сам. )))

    DEBUG одним словом.
     
  14. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Да это даже не плагин, просто скрипт счётчика, который помещается в functions.php. На счёт готового решения я не рассчитывал. Просмотрел скрипт. Кроме того, что я писал раньше - "кое что наковырял в коде нового счётчика. $meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров.", - получается $meta_key должно присваиваться "views", но этого не происходит. К тому же я не пойму, что собсвенно являет собой views - атрибут, значение или просто слово. "views" больше нигде не используется. Интересно ещё и то, что вроде бы посты должны выводится не смотря на то, работает счётчик или нет. В php я давно не лазил и большую часть подзабыл, да с "устройством" вордпресса я не на ты. Могу залить сам скрипт счётчика. Но мне кажется, что вся проблема в ключе мета поля.
     
  15. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    'views' это слово, которое ищется в таблице postmeta. если ты поглядишь в эту таблицу, ты должен увидеть принцип как там хранятся значения. и можешь поискать это слово в таблице, а вдруг туда уже что-то писалось.

    работа с мета-значениями ведется через предопределенные функции wordpress. в любом случае, что бы с этим значением не делалось, в вызове должно присутствовать слово 'views'. неизбежно, блин. ты нашел $meta_key = 'views' — окееей! значит $meta_key твоя следующая цель.

    я больше не могу объяснять, извини.
     
  16. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Я понял. Спасибо за помощь.
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    WarJohn выложи архив двух счётчиков, может кто-то посмотрит
     
  18. WarJohn

    WarJohn Новичок

    С нами с:
    6 дек 2015
    Сообщения:
    9
    Симпатии:
    0
    Я не знаю, как сюда заливать файлы. Вот ссылка на яндекс диск с архивом счётчиков https://yadi.sk/d/thw9TqMKm57Cv Могу попросту сюда их код написать.