Kanjo
Ответы в темах
-
Юрий, возможно это решение, но я хочу оставить заголовки в h4 и так же хочу избавиться от 2-х проверок.
если вставить пропущенное двоеточие перед фигурной открывающейся фигурной скобкой, то все работает, единственное слитают стили и вся форма загоняется в h4
<h4 id="comments"><?php comments_number('Пока комментариев нет. Напишем?', 'Есть 1 комментарий', 'Есть % комментариев');?> <?php if ( have_comments() ) : { ?> к “<?php the_title(); ?>” <?php } ?></h4>
как это можно победить ?
спасибо.
получается, что сейчас у меня 2 проверки, которые делают одно и то же ? но почему тогда, после удаления второй проверки — пропадают комментарии ?
разобрался, моя ошибка была. нечаянно удалил
<?php if ( have_comments() ) : ?>
вот только теперь немного не понимаю, что делает эта проверка и чем она отличается от той, которая добавляется в код вывода сообщения ?
спасибо.
неа, что-то не так. комментарии полностью пропадают.
Форум: Проблемы и решения
Тема: Не работает $zero у comments_number()спасибо большое. все теперь выводится. поднял смежную тему ТУТ
Форум: Проблемы и решения
Тема: Не работает $zero у comments_number()2 недели прошло, нет ни одного ответа. прикрепляю код своего файла comments.php, возможно это поможет в решении моей проблемы
<!-- You can start editing here. --> <div id="commentpost"> <?php if ( have_comments() ) : ?> <?php if ( ! empty($comments_by_type['comment']) ) : ?> <h4 id="comments"><?php comments_number('нет комментариев.', 'Есть 1 комментарий.', 'Есть % комментария.');?> к “<?php the_title(); ?>”</h4> <div id="post-navigator-single"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <ol class="commentlist"> <?php wp_list_comments('type=comment&callback=user_comment'); ?> </ol> <div id="post-navigator-single"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php endif; ?> <?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. --> <h2 id="post-header">Комментарии закрыты.</h2> <?php endif; ?> <?php endif; ?> <?php if ('open' == $post->comment_status) : ?> <div id="respond"> <h4><?php comment_form_title( 'Оставить комментарий', 'Написать ответ %s' ); ?></h4> <div class="cancel-comment-reply"> <?php cancel_comment_reply_link('Отмена'); ?> </div> <form action="/wp-comments-post.php" method="post" id="cf"> <?php if ( $user_ID ) : ?> <p>Вы вошли как: <a href="/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Выйти из аккаунта">Выход »</a></p> <?php else : ?> <p> <label for="author"><small>Ваше имя <?php if ($req) echo "(обязательно)"; ?></small></label><br /> <input type="text" class="tf" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> </p> <p> <label for="email"><small>Ваша почта <?php if ($req) echo "(обязательно)"; ?></small></label><br /> <input type="email" class="tf" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> </p> <?php endif; ?> <textarea name="comment" id="comment" cols="50%" rows="8" class="af" tabindex="3"></textarea> <div> <input name="submit" type="submit" class="st" value="Отправить" id="submit" alt="Отправить свой комментарий" tabindex="4" /> </div> <?php comment_id_fields(); ?> <?php do_action('comment_form', $post->ID); ?> </form> </div> <?php endif; // if you delete this the sky will fall on your head ?> </div>
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkспасибо. познавательно. но к сожалению я долек от программирования и половину сказанных оратором слов для меня были на клингонском. именно поэтому и попросил членов коммьюнити глянуть на мой получившийся код и сказать, есть ли в нем какие-нибудь явные недочеты и как их можно откорректировать.
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkпросто хочется, чтобы все работало корректно и не вызывало лишних проверок и конфликтов. ведь бывает такое, что все с одной стороны работает, а в коде не пойми что как формируется
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkубирал echo, поэтому и пропадало.
прошу еще раз проверить мой финальный код на предмет корректности и закроем тему.
function kanjo_comments_popup_link( $zero = false, $one = false, $more = false, $css_class = '' ) { global $wpcommentspopupfile, $wpcommentsjavascript; $id = get_the_ID(); if ( false === $zero ) $zero = __( '0 комментариев' ); if ( false === $one ) $one = __( '1 комментарий' ); if ( false === $more ) $more = __( '% комментария' ); $number = get_comments_number( $id ); echo '<a href="'; if ( $wpcommentsjavascript ) { if ( empty( $wpcommentspopupfile ) ) $home = home_url(); else $home = get_option('siteurl'); echo $home . '/' . $wpcommentspopupfile . '?comments_popup=' . $id; echo '" onclick="wpopen(this.href); return false"'; } else { // if comments_popup_script() is not in the template, display simple comment link if ( 0 == $number ) echo get_permalink() . '#respond'; else comments_link(); echo '"'; } if ( !empty( $css_class ) ) { echo ' class="'.$css_class.'" '; } $title = the_title_attribute( array('echo' => 0 ) ); echo apply_filters( 'comments_popup_link_attributes', '' ); echo ' title="' . esc_attr( sprintf( __('Комментарии к %s'), $title ) ) . '">'; comments_number( $zero, $one, $more ); echo '</a>'; }
p.s. большое спасибо за помощь. сам бы я точно не справился.
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkпопытался самостоятельно вырезать из кода
if ( 0 == $number && !comments_open() && !pings_open() ) { echo '<span' . ((!empty($css_class)) ? ' class="' . esc_attr( $css_class ) . '"' : '') . '>' . $none . '</span>'; return; }
либо ссылка на комментарии пропадает, либо открывается белая страница. подскажите пожалуйста, как это правильно сделать ?
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkуже протестировал мой резанный код, который был в предыдущем сообщении, все работает, багов не выявлено )
осталось избавиться от pings_open
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkхмммм. тогда такой вопрос, пинги и трекбеки у меня запрещены и я их вырезал из шаблона. соответственно данная проверка мне не нужна и логичнее от нее отказаться. а вот как правильно это вырезать из функции ?
пока у меня получился такой код
function kanjo_comments_popup_link( $zero = false, $one = false, $more = false, $css_class = '', $none = false ) { global $wpcommentspopupfile, $wpcommentsjavascript; $id = get_the_ID(); if ( false === $zero ) $zero = __( '0 комментариев' ); if ( false === $one ) $one = __( '1 комментарий' ); if ( false === $more ) $more = __( '% комментария' ); $number = get_comments_number( $id ); if ( 0 == $number && !comments_open() && !pings_open() ) { echo '<span' . ((!empty($css_class)) ? ' class="' . esc_attr( $css_class ) . '"' : '') . '>' . $none . '</span>'; return; } echo '<a href="'; if ( $wpcommentsjavascript ) { if ( empty( $wpcommentspopupfile ) ) $home = home_url(); else $home = get_option('siteurl'); echo $home . '/' . $wpcommentspopupfile . '?comments_popup=' . $id; echo '" onclick="wpopen(this.href); return false"'; } else { // if comments_popup_script() is not in the template, display simple comment link if ( 0 == $number ) echo get_permalink() . '#respond'; else comments_link(); echo '"'; } if ( !empty( $css_class ) ) { echo ' class="'.$css_class.'" '; } $title = the_title_attribute( array('echo' => 0 ) ); echo apply_filters( 'comments_popup_link_attributes', '' ); echo ' title="' . esc_attr( sprintf( __('Комментарии к %s'), $title ) ) . '">'; comments_number( $zero, $one, $more ); echo '</a>'; }
я отказался от закрытых комментариев, вырезав код ниже, потому как они всегда открыты
if ( false === $none ) $none = __( 'Comments Off' );
получается теперь надо убрать проверку трекбеков, и после этого можно из значения функции будет убрать $none, т.к. это значение не будет выводиться.
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkспасибо большое, вроде бы более менее разобрался. но и появились новые вопросы )))
если я правильно понял, то мне надо взять этот код:
function comments_popup_link( $zero = false, $one = false, $more = false, $css_class = '', $none = false ) { global $wpcommentspopupfile, $wpcommentsjavascript; $id = get_the_ID(); if ( false === $zero ) $zero = __( 'No Comments' ); if ( false === $one ) $one = __( '1 Comment' ); if ( false === $more ) $more = __( '% Comments' ); if ( false === $none ) $none = __( 'Comments Off' ); $number = get_comments_number( $id ); if ( 0 == $number && !comments_open() && !pings_open() ) { echo '<span' . ((!empty($css_class)) ? ' class="' . esc_attr( $css_class ) . '"' : '') . '>' . $none . '</span>'; return; } if ( post_password_required() ) { echo __('Enter your password to view comments.'); return; } echo '<a href="'; if ( $wpcommentsjavascript ) { if ( empty( $wpcommentspopupfile ) ) $home = home_url(); else $home = get_option('siteurl'); echo $home . '/' . $wpcommentspopupfile . '?comments_popup=' . $id; echo '" onclick="wpopen(this.href); return false"'; } else { // if comments_popup_script() is not in the template, display simple comment link if ( 0 == $number ) echo get_permalink() . '#respond'; else comments_link(); echo '"'; } if ( !empty( $css_class ) ) { echo ' class="'.$css_class.'" '; } $title = the_title_attribute( array('echo' => 0 ) ); echo apply_filters( 'comments_popup_link_attributes', '' ); echo ' title="' . esc_attr( sprintf( __('Comment on %s'), $title ) ) . '">'; comments_number( $zero, $one, $more ); echo '</a>'; }
перевести надо в этой строчке
echo ' title="' . esc_attr( sprintf( __('Comment on %s'), $title ) ) . '">';
сразу же в функции я могу перевести строчки
if ( false === $zero ) $zero = __( 'No Comments' ); if ( false === $one ) $one = __( '1 Comment' ); if ( false === $more ) $more = __( '% Comments' ); if ( false === $none ) $none = __( 'Comments Off' );
и вызвать свою функцию без доп параметров в виде
<?php kanjo_comments_popup_link (); ?>
т.к. комментарии никогда не закрываются паролем, можно вырезать из кода условие
if ( post_password_required() ) { echo __('Enter your password to view comments.'); return; }
правильно ли я разобрался ?
и за что отвечает параметр !pings_open() в строчке
if ( 0 == $number && !comments_open() && !pings_open() ) {
спасибо
Форум: Проблемы и решения
Тема: Вопрос по comments_popup_linkсогласен, немного бредовое объяснение, но как есть, так и сказал. все переведено, все работает корректно, за несколько месяцев использования нашел только этот недочет, который ой как хочется подправить.
к сожалению самостоятельно информации об этом переводе не нашел (