#wordpress #if-statement
#wordpress #if-statement
Вопрос:
Я не уверен, с чего начать, но я хочу добавить символ или изменить css для комментариев для зарегистрированных пользователей. Показать разницу между комментариями незарегистрированных пользователей и комментариями зарегистрированных пользователей.
Как бы мне добавить это на свой сайт WordPress?
<div class="commentdetails">
<p class="commentauthor"><?php comment_author_link() ?></p>
<?php if ($comment->comment_approved == '0') : ?>
<em>Your review is pending approval by gsprating staff.</em>
<?php endif; ?>
<p class="commentdate"><?php comment_date('F jS, Y') ?>
amp;nbsp; amp;nbsp; IP/Hostname: <small>(coming soon)</small>
amp;nbsp; amp;nbsp; <?php edit_comment_link('Edit Comment','',''); ?>
</p>
Я хочу добавить, сделайте так, чтобы весь класс имел другой цвет, если пользователь является зарегистрированным пользователем, вошедшим в систему.
Ответ №1:
Вот полностью php-версия кода Саладина, использующая стандартный if / else sysntax:
<?php
if ($comment->user_ID) {
echo "<div class='comment_registeredUser'>";
}
else { // The user is not logged in
echo "<div class='commentdetails'>";
}
?>
Перевод всего кода на php исправил ошибки выполнения для меня. Конечно, это могло быть потому, что я делал что-то еще неправильно.
Комментарии:
1. Да, это могло бы исправить любые проблемы с выполнением, но правда в том, что я допустил несколько довольно эпических ошибок в своем ответе, которые могли бы объяснить проблемы Бобби. С тех пор я очистил ответ и исправил его — вероятно, не следует публиковать ответы в 3 часа ночи, ха-ха. 1 за то, что дал гораздо более чистый ответ, чем я изначально.
2. Хорошо, я попытался реализовать код curts, он не выдает ошибок, но не использует class=’comment_registeredUser’> для комментариев зарегистрированных пользователей. Он по-прежнему просто использует else. Я чего-то не понимаю?
3. Было бы проще просто включить gravatars и настроить его так, чтобы он показывал gravatar для зарегистрированных пользователей и не показывался для незарегистрированных? Моя общая цель здесь заключается в том, что у меня есть веб-сайт gsp review, и я хочу, чтобы у моих зарегистрированных пользователей был какой-то специальный значок, цвет и т.д., Чтобы показать, что они являются подтвержденными зарегистрированными пользователями.
4. Если ценность комментариев одинакова независимо от регистрации пользователя, то было бы разумнее использовать другой подход. Я быстро прочитал о gravatars, что они предназначены для использования на многих сайтах. Зарегистрированный пользователь должен был бы иметь его в первую очередь. Я бы подумал, что лучшим подходом было бы показать специальный аватар для незарегистрированных пользователей. В любом случае вам все равно нужно определить, зарегистрирован ли пользователь. Попробуйте поменять местами имена классов, просто чтобы посмотреть, работает ли определение класса. Кроме того, есть ли у вас сайт для этого, который мы могли бы посмотреть?
Ответ №2:
Поскольку комментарии отображаются в wp_list_comments()
функции, вам нужно будет отредактировать код там. Самый простой способ добиться этого — использовать простой оператор if / else, проверяющий, связан ли с комментарием идентификатор пользователя. Если это так, это означает, что комментарий был сделан зарегистрированным пользователем.
Конечно, помимо этого, вам нужно будет создать новый класс CSS, чтобы задать различие. Вот несколько примеров кода:
<?php if($comment->user_ID) : ?>
<div class="comment_registeredUser"> <!-- Or whatever you decide to call the CSS class -->
<?php else : ?> <!-- The commenter isn't a registered user -->
<div class="commentdetails">
<?php endif; ?>
// Then include the rest of the code as is
$comment->user_ID
Переменная вернет true
, является ли автор комментария зарегистрированным пользователем и входил ли он в систему при публикации комментария. Приведенный выше код назначит ваш пользовательский CSS-класс div, если он действительно возвращается true
. Если нет, то просто будет применен стандартный класс и стиль.
В WordPress Codex также есть действительно хороший учебник по разработке тем. Определенно стоит ознакомиться с ними, если вы не уверены в том, что вам нужно сделать для создания / редактирования вашей темы WordPress.
Редактировать: убрал ответ и лучше объяснил правильную логику.
Комментарии:
1. Как мне различать классы div для незарегистрированных и зарегистрированных?
2. Я бы создал отдельный класс div для зарегистрированных пользователей. Что-то вроде
.comment_registeredUser
в качестве примера. Конечно, проще просто добавить символ — добавьте символ после одной из строк ‘post info’.3. Правильно, проверьте код, который я вставил в исходный вопрос. Если я добавлю <?php if ($user_ID) ?> в начало этого класса <div>, как я буду различать эти два класса?
4. Это не сработало, должен ли я где-либо указывать <?php endif; ?>? чтобы он не продолжал цикл?
5. Он изменил все комментарии к этому div css.