Функции Word Press

Хотелось бы сделать, чтобы поля "Имя" "Мыло" и "Сайт" – которые нужно заполнять, для добавки комментария – не оторбражались, в том случае, если человек залогинен.
Возможно есть какая-нибудь функция в вордпрессе, которой можно проверять залогинен человек или нет, и в случае если залогинен…скрывать эти поля…как это вообще можно реализовать?)

вообще то это работает автоматически. показывает ВЫ ВОШЛИ КАК ***. ВЫЙТИ>

"вообще то это работает автоматически. показывает ВЫ ВОШЛИ КАК ***. ВЫЙТИ>"
точно в дефолтной теме, так и сделано!

Попытался я сделать как в дефолтной теме…в результате при отправке комента показывается пустая страница с адресом:http://it-blog.ru/wp-comments-post.php

Может быть кто-нибудь может разобраться почему так происходит?

Вот комментс.пхп с которым всё работает:

<?php // Do not delete these lines
    if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
        die ('Пожалуйста, не загружайте эту страницу напрямую. Спасибо!');

        if (!empty($post->post_password)) { // if there's a password
            if ($_COOKIE['wp-postpass_'.$cookiehash] != $post->post_password) {  // and it doesn't match the cookie
                ?>

                <p class="nocomments"><?php _e("Эта запись защищена паролем. Введите пароль для просмотра комментариев"); ?><p>

                <?php
                return;
            }
        }

        /* This variable is for alternating comment background */
        $oddcomment = "graybox";
?>

<!-- You can start editing here. -->
    <div class="commentpage">
<?php if ($comments) : ?>
    <a name="comments"></a><h2><?php comments_number('Комментариев нет','Один комментарий','Комментарии (%)' );?></h2>
              <p>
    <ol class="commentlist">


    <?php foreach ($comments as $comment) : ?>

        <li class="<?=$oddcomment;?>">
            <div class="avatars">
               <?php if(function_exists('cmd_show_avatar')) { cmd_show_avatar(); } ?>
               </div>

            <a name="comment-<?php comment_ID() ?>"></a><cite><?php comment_author_link() ?></cite> пишет:<br />
            <!--<small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="<?php comment_date('d.m.Y') ?> в <?php comment_time('H:i') ?>"><?php /* $entry_datetime = abs(strtotime($post->post_date)); $comment_datetime = abs(strtotime($comment->comment_date)); echo time_since($entry_datetime, $comment_datetime) */ ?></a> after publication. <?php edit_comment_link('e','',''); ?></small>-->


            <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('d.m.Y') ?> в <?php comment_time('H:i') ?></a> <?php edit_comment_link('e','',''); ?></small>



            <?php comment_text() ?>



        </li>

        <?php /* Changes every other comment to a different class */
            if("graybox" == $oddcomment) {$oddcomment="";}
            else { $oddcomment="graybox"; }
        ?>

    <?php endforeach; /* end for each comment */ ?>

    </ol>

 <?php else : // this is displayed if there are no comments so far ?>

  <?php if ('open' == $post-> comment_status) : ?>
        <!-- If comments are open, but there are no comments. -->

     <?php else : // comments are closed ?>
        <!-- If comments are closed. -->
        <p class="nocomments">Обсуждение закрыто.</p>

    <?php endif; ?>
<?php endif; ?>
 </div>
  <div class="ostcomm">
<?php if ('open' == $post-> comment_status) : ?>

<a name="respond"></a><h3>Оставить комментарий</h3>
</div>
    <div>
<form action="<?php echo get_settings('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

    <?php if ( $user_ID ) : ?>

<p>Приветствую вас, <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти">Выйти &raquo;</a></p>

<?php else : ?>


<p id="comm"><input type="text" name="author" id="author" class="styled" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<input type="hidden" name="redirect_to" value="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" />
<label for="author"><small>Имя</small></label></p>

<p id="comm"><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email"><small>E-mail (не публикуется)</small></label></p>

<p id="comm"><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Сайт</small></label></p>
   <?php endif; ?>
<!--<p><small><strong>XHTML:</strong> Вы можете использовать эти теги: <?php echo allowed_tags(); ?></small></p>-->


<p id="comm"><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
    <?php if(function_exists(wp_comment_quicktags_plus)) { wp_comment_quicktags_plus(); } ?>

<?php if ('none' != get_settings("comment_moderation")) { ?>
    <p><small><strong>Заметьте:</strong> Включена проверка комментариев. Нет смысла повторно отправлять комментарий.</small></p>
<?php } ?>

<p id="comm"><input name="submit" type="submit" id="submit" tabindex="5" value="Отправить" /></p>

     <?php do_action('comment_form', $post->ID); ?>
</form>

       </div>
     <?php // if you delete this the sky will fall on your head
endif; ?>

всё что я добавляю это:

<?php if ( $user_ID ) : ?>

<p>Приветствую вас, <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти">Выйти &raquo;</a></p>

<?php else : ?>


Дальше идут поля которые нужно заполнять тем кто не залогинен


<?php endif; ?>

то есть в итоге получается:

<?php // Do not delete these lines
    if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
        die ('Пожалуйста, не загружайте эту страницу напрямую. Спасибо!');

        if (!empty($post->post_password)) { // if there's a password
            if ($_COOKIE['wp-postpass_'.$cookiehash] != $post->post_password) {  // and it doesn't match the cookie
                ?>

                <p class="nocomments"><?php _e("Эта запись защищена паролем. Введите пароль для просмотра комментариев"); ?><p>

                <?php
                return;
            }
        }

        /* This variable is for alternating comment background */
        $oddcomment = "graybox";
?>

<!-- You can start editing here. -->
    <div class="commentpage">
<?php if ($comments) : ?>
    <a name="comments"></a><h2><?php comments_number('Комментариев нет','Один комментарий','Комментарии (%)' );?></h2>
              <p>
    <ol class="commentlist">


    <?php foreach ($comments as $comment) : ?>

        <li class="<?=$oddcomment;?>">
            <div class="avatars">
               <?php if(function_exists('cmd_show_avatar')) { cmd_show_avatar(); } ?>
               </div>

            <a name="comment-<?php comment_ID() ?>"></a><cite><?php comment_author_link() ?></cite> пишет:<br />
            <!--<small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="<?php comment_date('d.m.Y') ?> в <?php comment_time('H:i') ?>"><?php /* $entry_datetime = abs(strtotime($post->post_date)); $comment_datetime = abs(strtotime($comment->comment_date)); echo time_since($entry_datetime, $comment_datetime) */ ?></a> after publication. <?php edit_comment_link('e','',''); ?></small>-->


            <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('d.m.Y') ?> в <?php comment_time('H:i') ?></a> <?php edit_comment_link('e','',''); ?></small>



            <?php comment_text() ?>



        </li>

        <?php /* Changes every other comment to a different class */
            if("graybox" == $oddcomment) {$oddcomment="";}
            else { $oddcomment="graybox"; }
        ?>

    <?php endforeach; /* end for each comment */ ?>

    </ol>

 <?php else : // this is displayed if there are no comments so far ?>

  <?php if ('open' == $post-> comment_status) : ?>
        <!-- If comments are open, but there are no comments. -->

     <?php else : // comments are closed ?>
        <!-- If comments are closed. -->
        <p class="nocomments">Обсуждение закрыто.</p>

    <?php endif; ?>
<?php endif; ?>
 </div>
  <div class="ostcomm">
<?php if ('open' == $post-> comment_status) : ?>

<a name="respond"></a><h3>Оставить комментарий</h3>
</div>
    <div>
<form action="<?php echo get_settings('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

    <?php if ( $user_ID ) : ?>

<p>Приветствую вас, <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти">Выйти &raquo;</a></p>

<?php else : ?>


<p id="comm"><input type="text" name="author" id="author" class="styled" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<input type="hidden" name="redirect_to" value="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" />
<label for="author"><small>Имя</small></label></p>

<p id="comm"><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email"><small>E-mail (не публикуется)</small></label></p>

<p id="comm"><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Сайт</small></label></p>
   <?php endif; ?>
<!--<p><small><strong>XHTML:</strong> Вы можете использовать эти теги: <?php echo allowed_tags(); ?></small></p>-->


<p id="comm"><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
    <?php if(function_exists(wp_comment_quicktags_plus)) { wp_comment_quicktags_plus(); } ?>

<?php if ('none' != get_settings("comment_moderation")) { ?>
    <p><small><strong>Заметьте:</strong> Включена проверка комментариев. Нет смысла повторно отправлять комментарий.</small></p>
<?php } ?>

<p id="comm"><input name="submit" type="submit" id="submit" tabindex="5" value="Отправить" /></p>

     <?php do_action('comment_form', $post->ID); ?>
</form>

       </div>
     <?php // if you delete this the sky will fall on your head
endif; ?>

всё по полной аналогии с дефолтной темой…но не работает(

при этом такая проблема возникает только у тех кто залогинен, у остальных коменты нормально отправляются.

вроде уделал.
Кто-нибудь может сказать за что отвечает этот код, из-за него не работало:
"<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<input type="hidden" name="redirect_to" value="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" />"

Ещё хочу, чтобы меню в сайдбаре зависело от того залогинен человек или нет.
Пытаюсь сделать аналогично тому как выше:

"<?php if ( $user_ID ) : ?>

поля в сайдбаре, которые должнен видеть залогиненный юзер

<?php else : ?>
то что должен видеть не залогиненный

<?php endif; ?>"

но в независимости от того залогинен или нет, отображается то что должен видеть не залогиненный.
может быть тут не "$user_ID" использовать нужно?

Попробуйте использовать is_user_logged_in()

Anonymous
Отправить
Ответ на: