Здравствуйте. Для кастомного типа записей можно вроде вывести примерно так
<div class="complaint-button" style="background-color:#b93228;color:#fff" data-add-complaint="" data-type="comment" data-object_id="113">Пожаловаться</div>
Но кнопка ужасная получается , кнопка не цепляет стили
по сравнению с вашей
Подскажите пожалуйста, как лучше сделать?
<div class="complaint-button" style="background-color:#b93228;color:#fff" data-add-complaint="" data-type="comment" data-object_id="113">Пожаловаться</div>
Если выводить кнопку подобным образом, соответственно нет проверки оставлена жалоба или нет. Только по повторному нажатию вылазит сообщение об ошибке. Через какую переменную можно проверить жалобу?
Вот как в комментах выводится кнопка
add_filter('comment_text', 'rcl_complaints_show_btn_comment', 300, 2); function rcl_complaints_show_btn_comment($comment_text, $comment) { global $user_ID; if (is_admin() || !$user_ID || $comment->user_id == $user_ID) { return $comment_text; } $button = new Rcl_Complaints_Button('comment', $comment->comment_ID); return $comment_text . $button->getButton(); }
Ну так там и для записи есть вывод
add_filter( 'the_content', 'rcl_complaints_show_btn_post', 300 ); function rcl_complaints_show_btn_post( $content ) { global $post, $user_ID; if ( $post->post_type == 'post-group' ) { $complaint_type = 'post_group'; } else if ( $post->post_type == 'post' ) { $complaint_type = 'post'; } else { $complaint_type = 'post_' . $post->post_type; } if ( ! $user_ID || $post->post_author == $user_ID || ! rcl_complaints_allow_auto_display_type( $complaint_type ) ) { return $content; } $button = new Rcl_Complaints_Button( $complaint_type, $post->ID ); return $content . $button->getButton(); }
Preci сказал(а)
Ну так там и для записи есть выводadd_filter( 'the_content', 'rcl_complaints_show_btn_post', 300 ); function rcl_complaints_show_btn_post( $content ) { global $post, $user_ID; if ( $post->post_type == 'post-group' ) { $complaint_type = 'post_group'; } else if ( $post->post_type == 'post' ) { $complaint_type = 'post'; } else { $complaint_type = 'post_' . $post->post_type; } if ( ! $user_ID || $post->post_author == $user_ID || ! rcl_complaints_allow_auto_display_type( $complaint_type ) ) { return $content; } $button = new Rcl_Complaints_Button( $complaint_type, $post->ID ); return $content . $button->getButton(); }
В том то и дело, на странице вывода постов возвращает пустую строку.
Мне нужно не только внутри поста выводить, но и на странице всех постов. В моем случае на главной.
А я вывожу кнопку так:
<div class="complaint-button" style="background-color:#b93228;color:#fff" data-add-complaint="" data-type="post_articles" data-object_id="ID; ?>">Пожаловаться</div>
Все работает отлично. Просто После обновления страницы кнопка все равно видна. Вот я пытаюсь понять как можно определить, оставил ли я жалобу на пользователя.
Что бы на главной выводить вам надо юзать фильтр the_excerpt ну или в шаблоне вашей темы в цикле выводить по аналогии с тем что выше.
Проверять оставлял ли юзер жалобу на текущий объект недостаточно, там еще есть дневные лимиты на жалобы. Все это автоматически проверяется при корректном выводе кнопки, а не просто html кодом
Preci сказал(а)
Что бы на главной выводить вам надо юзать фильтр the_excerpt ну или в шаблоне вашей темы в цикле выводить по аналогии с тем что выше.Проверять оставлял ли юзер жалобу на текущий объект недостаточно, там еще есть дневные лимиты на жалобы. Все это автоматически проверяется при корректном выводе кнопки, а не просто html кодом
при использовании фильтра the_excerpt, возвращает NULL.
Я кстати использую дополнение OTFM List of Publications, возможно в этом дело что ничего не возвращает.