Всем доброго времени суток. У меня сложилась такая проблема. У меня на блоге (блог на wordpress) стоял счётчик просмотров постов, но он так же считал и админа. Недавно я нашёл счётчик, который исключает админа и заменил им старый, после этого в single.php перестали выводиться посты. Объясниет пожалуйста кто нибудь в чём может крыться причина и как её побороть. Кстати, когда возвращаю старый счётчик, всё становиться на свои места.
WarJohn wordpress большая программа, так что нужно смотреть код второго счётчика как минимум, обычно чтобы такое сделать, надо понимать как работают программы. Сейчас твой вопрос выглядит так: у меня машина делает дзынь дзынь, как починить? Очень обширный вопрос для форума (и мало данных), с такой формулировкой лучше в раздел free-lance там за деньги сделают. Мало кто захочет просто так ставить wordpress, потом счётчик и разбираться в чём дело. Тут либо учат или подсказываю что-то простое. Например ты нашёл проблему и знаешь какой кусок кода отвечает за вывод постов, но как её исправить тут нужна помощь. Попробуй сравнить файл single.php из первого счётчика и из второго.
Да сам single.php не меняется, там только вызов функции добавляется и всё. Там скорее всего проблема с выборкой из БД, просто скорее всего старый счётчик в бд создавал своё поле, а новый своё, вот выборка и падает. А написал я сюда потому что может у кого то такая же проблема была. По поводу нехватки информации, так я могу обе функции счётчиков залить, в них принцип один, различие только в переменных и ,как я понимаю, в выборке из бд.
Рассуждаешь логично. Осталось проверить с помощью отладки. Сам сейчас ловлю баги при переносе клиентского WP на новое место. Ох нелегкая это работа )
Вот это и есть изменения single.php. Можешь два single.php выложить, от первого счётчика и от второго, возможно этого хватит чтобы понять в чём причина.
либо воспользуйся различными файловыми хостингами, либо, если кода не очень много, залей их в теги Код ( (Unknown Language)): php[/b]]тут код
это single.php со старым счётчиком Код (PHP): <? setPostViews(get_the_ID()); ?> <? get_header();?> <div class="container"> <? if(have_posts()): while(have_posts()): the_post();?> <div class="post"> <div class="postTitle"> <h2><? the_title();?></h2> </div> <div class="postInfo"> <? the_date();?> | <? echo getPostViews(get_the_ID());//вывод количества просмотров ?> </div> <div class="entry"> <? the_content();?> </div> </div> </div> <? endwhile; endif;?> <? comments_template('', true);?> </div> <? include('sidebar.php');?> <? get_footer();?> а это single.php с новым счётчиком Код (PHP): <? setPostViews(get_the_ID()); ?> <? get_header();?> <div class="container"> <? if(have_posts()): while(have_posts()): the_post();?> <div class="post"> <div class="postTitle"> <h2><? the_title();?></h2> </div> <div class="postInfo"> <? the_date();?> | <?php echo get_post_meta ($post->ID,'views',true); //вывод количества просмотров ?> </div> <div class="entry"> <? the_content();?> </div> </div> </div> <? endwhile; endif;?> <? comments_template('', true);?> </div> <? include('sidebar.php');?> <? get_footer();?> как видно разница только в одной строке. Код самих счётчиков естественно разнится. Добавлено спустя 52 секунды: я строки кода привёл к левому краю, потому как когда копировал они как то странно выстроились
очевидно новый счетчик должен заполнять атрибут views у поста — загляни в таблицу wp_postmeta, поймешь что это и есть ли эти данные. я бы глобально поискал слово 'views' в кавычках. где-то оно должно писаться. оно либо не пишется, либо не читается )))
Я правильно понял? Оба счётчика используют в бд поле "views", но последний просто не может его найти или что то в этом роде? Добавлено спустя 4 минуты 23 секунды: кое что наковырял в коде нового счётчика. $meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров. Вот в бд в wp_postmeta как раз и есть $meta_key. К сожалению моих знаний пока не хватает, что бы связать всё воедино и понять, как всё исправить. Подскажите, что нужно сделать?
нет. я могу только сказать про второй фрагмент кода: он пытается читать мета-поле сообщения, на этом всё. в первом случае очевидно используется собственная функция плагина с именем, сделанным не по вордпрессовским правилам. у меня нет идей что внутри этой функции ))) вроде и тебя это не должно интересовать, если ты стал использовать другой плагин. Добавлено спустя 2 минуты 38 секунд:
А можно подсказку где глобально искать, в бд или самом коде счётчика? И если его найду, что мне делать дальше?
искать в файлах плагина. откуда я знаю что дальше, бро?! ты расчитывал на готовое решение? — извиняй! я говорю что сам бы начал с этого, а после наверное будет понятно - отладка, временный вывод промежуточных результатов… у тебя есть счетчик. где он хранится понятно. смотришь, а есть ли это значение реально? а где он должен изменяться? а это место реально когда-нибудь вызывается? если нет — почему? шаг за шагом правильные вопросы приводят к правильному результату. и отвечаешь на них ты сам. ))) DEBUG одним словом.
Да это даже не плагин, просто скрипт счётчика, который помещается в functions.php. На счёт готового решения я не рассчитывал. Просмотрел скрипт. Кроме того, что я писал раньше - "кое что наковырял в коде нового счётчика. $meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров.", - получается $meta_key должно присваиваться "views", но этого не происходит. К тому же я не пойму, что собсвенно являет собой views - атрибут, значение или просто слово. "views" больше нигде не используется. Интересно ещё и то, что вроде бы посты должны выводится не смотря на то, работает счётчик или нет. В php я давно не лазил и большую часть подзабыл, да с "устройством" вордпресса я не на ты. Могу залить сам скрипт счётчика. Но мне кажется, что вся проблема в ключе мета поля.
'views' это слово, которое ищется в таблице postmeta. если ты поглядишь в эту таблицу, ты должен увидеть принцип как там хранятся значения. и можешь поискать это слово в таблице, а вдруг туда уже что-то писалось. работа с мета-значениями ведется через предопределенные функции wordpress. в любом случае, что бы с этим значением не делалось, в вызове должно присутствовать слово 'views'. неизбежно, блин. ты нашел $meta_key = 'views' — окееей! значит $meta_key твоя следующая цель. я больше не могу объяснять, извини.
Я не знаю, как сюда заливать файлы. Вот ссылка на яндекс диск с архивом счётчиков https://yadi.sk/d/thw9TqMKm57Cv Могу попросту сюда их код написать.