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();
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 18)
UTW_ShowTagsForCurrentPost("commalist"); Ключевые темы: No Tags
show_post_count(); Просмотров: 5838

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(); и перед ?> надо поставить закрывающую фигурную скобку }.

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

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

  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:

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

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

It sounds like SK2 has recently been updated on this blog. But not fully configured. You MUST visit Spam Karma's admin page at least once before letting it filter your comments (chaos may ensue otherwise).
show_manual_subscription_form();

Subscribe without commenting

endwhile;