Wtyczka Top Contributors
-
Mam tę właśnie wtyczkę, i ma ona za zadanie pokazywać użytkowników najczęściej komentujących. Wszystko prawidłowo pokazuje. Ale ma ona dodatkową opcję, mianowicie po osiągnięciu zadanej ilości komentarzy komentujący powinien otrzymać gwiazdkę, a która powinna pokazać się obok loginu autora w komentarzu. Niestety nie wiem czemu ale pomimo osiągnięcia wyznaczonego pułapu komentarzy gwiazdka nie pojawia się. Czy może ktoś zerknąć w tę wtyczkę i zorientować się co może być nie tak. Dziękuję.
-
Sprawdź czy w swoim motywie masz w kawałku odpowiedzialnym za komentarze wywołanie funkcji http://codex.wordpress.org/Function_Reference/comment_author_link -bo ta wtyczka pod nią właśnie podczepia gwiazdki.
Z tego co widzę w moim temacie jest plik comment.php i wygląda tak:
<!-- begin comments --> <?php if ( post_password_required() ) { ?> <div class="meta" id="comments"><?php _e( 'Enter your password to view comments.', 'shiword' ); ?></div> <?php return; } ?> <?php if ( have_comments() ) { ?> <div class="meta" id="comments"><?php comments_number( __( 'No Comments', 'shiword' ), __( '1 Comment', 'shiword' ), __( '% Comments', 'shiword' ) ); ?></div> <?php shiword_hook_before_comments(); ?> <ol class="commentlist"> <?php wp_list_comments( 'type=comment' ); ?> </ol> <?php shiword_hook_after_comments(); ?> <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) { ?> <div class="navigate_comments"> <?php paginate_comments_links(); ?> </div> <?php } ?> <?php $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id)); ?> <?php if ( ! empty($comments_by_type['pings']) ) { ?> <ol class="commentlist pings"> <?php wp_list_comments( 'type=pings' ); ?> </ol> <?php } ?> <?php } ?> <?php if ( comments_open() ) { ?> <?php $sw_fields = array( 'author' => '<p class="comment-form-author">' . '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" aria-required="true" />' . '<label for="author">' . __( 'Name', 'shiword' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .'</p>', 'email' => '<p class="comment-form-email">' . '<input id="email" name="email" type="text" value="' . sanitize_email( $commenter['comment_author_email'] ) . '" size="30" aria-required="true" />' . '<label for="email">' . __( 'Email', 'shiword' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .'</p>', 'url' => '<p class="comment-form-url">' . '<input id="url" name="url" type="text" value="' . esc_url( $commenter['comment_author_url'] ) . '" size="30" />' . '<label for="url">' . __( 'Website', 'shiword' ) . '</label>' .'</p>', ); ?> <?php $sw_custom_args = array( 'fields' => apply_filters( 'comment_form_default_fields', $sw_fields ), 'comment_field' => '<p class="comment-form-comment"><textarea id="comment" name="comment" cols="45" rows="7" style="width: 95%;color: #000000; border: 1px inset #000000; background-color: #C0C0C0;" aria-required="true"></textarea></p>', 'comment_notes_after' => '<p class="form-allowed-tags"><small>' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s', 'shiword' ), allowed_tags() ) . '</small></p>', 'label_submit' => __( 'Say It!', 'shiword' ), 'logged_in_as' => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>.', 'shiword' ), admin_url( 'profile.php' ), $user_identity ) . '</p>', ); comment_form( $sw_custom_args ); ?> <?php } ?> <!-- end comments -->
Czy możesz mi podpowiedzieć co trzeba by zmienić? Będę Ci wdzięczna.
Myślę, że tu gdzie jest comment_author trzeba dodać comment_author_link ale ja tylko strzelam. Nie jestem pewna czy dobrze myślę. Dziękuję i pozdrawiam.Korzystasz więc z natywnego szablonu komentarzy – po wejściu w dany wpis powinnaś mieć gwiazdki bez żadnych dodatkowych modyfikacji.
Sprawdź.Chyba, że gwiazdki chcesz w innym miejscu np. w widgecie czy w liście postów danej kategorii.
No niestety, widget pokazuje prawidłowo użytkowników którzy komentowali ostatnio, ale gwiazdka za nic nie chce sie pokazać. Ustawiłam również Threshold czyli próg dla różnych wartości np. 10,15,30. Próbowałam również z wartością domyślną i dalej tej czy tych gwiazdek nie widać.
Oczywiście zapomniałam dodać, że ja szukam owej gwiazdki w komentarzach obok loginu autora komentarza który osiągnął zadany pułap ilości komentarzy. Jak wchodzę do jakiegoś posta, wpisu i pod nim są komentarze, tam właśnie szukam gwiazdki. Chyba że szukam nie tu gdzie trzeba, ale z opisu wtyczki wynika, że obok loginu autora który osiągnął np. te 10 komentarzy powinna pojawić się gwiazdka. U mnie komentarzy jest bardzo dużo więc nie muszę szukać czy kombinować żeby sprawdzić czy się gwiazdka pokaże. Kilku użytkowników przekroczyło najniższe pułapy jakie ustawiłam ale gwiazdek nie ma.
Ohhh, są gwiazdki. Widzisz, ja mam dodane do komentarzy wtyczkę „Simple User Rank Comments”. Coś mnie mówiło żeby ją wyłączyć. Wyłączyłam i gwiazdki się pojawiły. Ehh, tylko mam problem, bo to „simple user rank comments” mi też odpowiada. Czy jest możliwość żeby one razem współgrały?
No tak, to zmienia postać rzeczy …jedna nadpisuje tutaj drugą.
Możesz zrobić tak:
Edytuj simple-user-rank-comments.php i wykomentuj lub usuń w okolicach 65 linijkiif( intval($this->filter) == 1 ) { add_filter( 'get_comment_author_link', array(&$this, 'attach_rank_to_author') ); }
Potem przejdź do wtyczki Top Contributors, w pliku functions.inc.php w okolicach linii 843 znajdziesz wywołanie funkcji
function jme_tc_icon($user) {
Na końcu tej funkcji około linijki 864 będzie
return $string;
…dorzuć linijkę wcześniej coś takiego:
if(function_exists('get_user_rank')) $string.=' '.get_user_rank();
Wielki, przeogromny buziak za pomoc. Zastosowałam wszystko tak jak napisałeś i obydwie wtyczki wspólnie działają. Dziękuję ci bardzo, bardzo, bardzo. Twoja pomoc okazała się dla mnie nieoceniona! Pozdrawiam cieplutko.
- Temat ‘Wtyczka Top Contributors’ jest zamknięty na nowe odpowiedzi.