single.php

include (TEMPLATEPATH . '/searchform.php');
if (have_posts()) : while (have_posts()) : the_post();
the_time('F j, Y'); декабрь 7, 2007
the_author(); Yantar
the_category(', '); wordpress, для продолжающих
the_ratings();
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 21)
UTW_ShowTagsForCurrentPost("commalist"); Ключевые темы: No Tags
show_post_count(); Просмотров: 15419

the_content();

С тех пор как я только начала изучать WordPress меня интересовала эта проблема: как показать профиль/профайл автора, у которого нет ни одной записи. Дело в том, что Вордпресс в этом случае почему-то перенаправляет нас на ошибку 404.
И вот, спустя два года, у меня наконец дошли руки до этой проблемы.
Во-первых, в теме должен находиться файл author.php.
Во-вторых, там же должен быть файл 404.php (он обычно есть в стандартных темах).
В-третьих, в этом самом 404.php сразу же как только начинается php-код, то есть после <?php (или <?), перед get_header(); надо написать:

 
if(isset($_GET['author_name'])) {
$curauth = get_userdatabylogin($author_name);
include (TEMPLATEPATH.'/author.php');
}
elseif ($curauth = get_userdata(intval($author)))
 {
include (TEMPLATEPATH.'/author.php');
} else {
 


Ну и в конце файла, после get_footer(); и перед ?> надо поставить закрывающую фигурную скобку }.

Насколько этот текст оказался полезным?
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 21)
comments_template();

Комментарии (15) к записи «Как показать профиль автора, у которого нет записей»

  1. Dimox Says:

    Спасибо за инфу! Меня тоже интересовал этот вопрос.

  2. MAX Says:

    Вообще-то WordPress правильно перенаправляет на 404-страницу. ;)

    Дело в том, что получая url-запрос, WordPress на его основе формирует sql, который и выполняется. Во всех случаях выборка должна возвратить записи, удовлетворяющие исходному условию (из wp_posts). В данном случае возвращается ноль, поэтому WordPress и отмечает данные как 404. Ну дальше понятно.

    Это кстати одна из серьезных причин, по которой WordPress всё-таки не будет полноценной CMS. Хотя обойти какие-то ограничения можно.

    Да и еще, не обязательно считывать _GET:

    $wp_query->query_vars[’author’]) - номер автора
    $wp_query->query_vars[’author_name’] - имя автора

  3. Yantar Says:

    Max, ну с этой точки зрения, конечно, правильно, но дико неудобно.
    А этот код с $_GET я использую совсем с давних времен, когда подсмотрела его в Кодексе и как-то даже не задумываюсь о нем - работает и хорошо :-) Спасибо за объектный подход!

  4. Ангело Says:

    спасибо, пригодиться еще информация эта…

  5. vova Says:

    мммм, очень полезно. понравился плагин ;)

  6. marat Says:

    > Во-вторых, там же должен быть файл 404.php
    > (он обычно есть в стандартных темах).

    а если в темах нет файла 404.php?
    как его прикрутить? у меня, например, просто выдается главная страница..

  7. Yantar Says:

    marat: В текстовом редакторе создаете файл 404.php, сохраняете в нужной кодировке, прописываете туда get_header(); get_sidebar(); и get_footer(); а в контенте пишете соответствующие слова.

  8. Гаджет Says:

    Спасибо. Как-раз нужно было…

  9. Core Duo Says:

    Благодарю. может быть пригодится.. собираю информацию по WP. Очень хороший движок

  10. Салат Says:

    Очень ценная информация!Спасибо!

  11. AlexPTS Says:

    Я уже где-то читал что-то похожее. Мне бы пораньше на ваш блог наткнуться, я бы много полезного о wordpress узнал бы. Сейчас немного уже знаю - wordpress глазами пользователя

  12. Rosya Says:

    Спасибо. Теперь самой думать не надо)

  13. Артур Says:

    Спасибо за инфу!

  14. Gelen Says:

    Отличная информация. Спасибо.

  15. vaklip Says:

    Это я удачно зашёл, пару дней метался по сайтам в поисках ответа, приведённого выше. Спасибо за инфу.

Есть комментарии?

show_manual_subscription_form();

Subscribe without commenting

endwhile;