• Здравствуйте! Хочу чтобы была проверка: если пользователь написал хоть одну статью на сайт ему показывается ссылка.
    По идее функция the_author_posts() возвращает количество написанных постов данным пользователем. Из этого я написал такой простенький код:

    <?php
    if (get_the_author_posts()>0) { echo '<a href="http://site.ru">ссылка</a>'; } else { echo
     '<b>'.'Вы еще нечего не написали!</b>';};  ?>

    Но почему то the_author_posts() работает криво я вывел ее через echo и мне показывалась всегда разное число в зависимости от выбранной категории. (в сайдбаре должно выводить)
    В чем ошибка?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Видимо в том, что функция должна работать в лупе. То есть она считает сколько постов автора в текущем объекте выборки. И если он находится в категории, пагинации, где нет его постов, то это условие не сработает.. Как то так..

    Думаю, вам надо пойти другим путем — брать айди текущего юзера и проверять, есть ли он в таблице постов.. Ну или смотреть, может в мета-таблице можно понять, писал он пост или не писал.. Или при первой публикации заносить какой-нибудь идентификатор..

    Так, функция запроса id пользователя get_current_user_id()
    в таблице wp-posts есть столбец post_author

    как в php прописать запрос на сравнение всех записей?

    но такой способ думаю будет бд нагружать находясь на главной.

    То есть она считает сколько постов автора в текущем объекте выборки.

    Я, похоже, неправильно оформил фразу. В доках http://codex.wordpress.org/Function_Reference/get_the_author_posts сказано, что возвращается общее количество опубликованных постов этого автора.

    ablogin, в остальном ничего конкретного предложить не могу…

    криво я вывел ее

    т. е. вне цикла. Вне цикла работает эта считалка
    http://codex.wordpress.org/Function_Reference/count_user_posts

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Не верно работает функция the_author_posts» закрыта для новых ответов.