Mekaeil Andisheh 346 ارسال شده در فروردین 93 گزارش بازنشر ارسال شده در فروردین 93 سلام.من نیاز دارم که نظرات پست های سفارشی رو در صفحه index.php نمایش بدم و با استفاده از کد زیر تونستم اینکار رو انجام بدم و درست کار میکنه<?php $withcomments = "1"; comments_template(); ?>ولی من میخوام دو نوع قالب نظرات برای قالبم داشته باشم آیا اینکار ممکن هست ؟؟الان من جهت تست 2 تا کامنت برای یکی از پست های سفارشی ارسال کردم و نمایش داده میشه در صفحه اصلی ولی وقتی وارد هر صفحه ی تکی یعنی single میشم نظرات مربوط به اون پست رو نمایش میده یعنی اگر برای پستی حتی نظری ارسال نشده باشه بازم نظر پست قبلی رو نشون میده و اصلا نمیتونم برای پست های پیشفرض وردپرس قسمت نظردهی قرار دهم با هم قاطی میکنهممنون میشم راهنمایی بفرمائید نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در فروردین 93 گزارش بازنشر ارسال شده در فروردین 93 من درست متوجه مشکل نشدم برای نمایش نظرات در صفحه اصلی این کد را استفاده کنید <?php $comments = get_comments(array('post_id' => $id)); wp_list_comments(array('per_page' => 4), $comments);?>بجای 4 تعداد نظراتی که می خواهید نمایش داده شود را بگذارید مشکل صفحه single.php الان دقیقا چیه ؟ صفحه comments.php دارید یا خیر اگر ندارید با کدهای مشابه کد زیر بسازید <?php// Do not delete these linesif (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!');if ( post_password_required() ) { ?><div><p class="nocomments"><?php _e('This post is password protected. Enter the password to view comments.', 'kubrick'); ?></p><div class="clear"></div></div><?php return;}?><!-- You can start editing here. --><?php if ( have_comments() ) : ?><div class="post"><h3 id="comments"><?php comments_number(__('No Responses', 'kubrick'), __('One Response', 'kubrick'), __('% Responses', 'kubrick'));?> <?php printf(__('to “%s”', 'kubrick'), the_title('', '', false)); ?></h3><?phpob_start();previous_comments_link(__('Newer Entries »', 'kubrick'));$prev_comment_link = ob_get_clean();ob_start();next_comments_link(__('« Older Entries', 'kubrick'));$next_comment_link = ob_get_clean();?><?php if ($prev_comment_link || $next_comment_link): ?><div class="navigation"> <div class="alignleft"> <?php echo $next_comment_link; ?> </div> <div class="alignright"> <?php echo $prev_comment_link; ?> </div></div><?php endif; ?><div class="clear"></div></div><ul class="commentlist"> <?php wp_list_comments('type=all'); ?> </ul><?php if ($prev_comment_link || $next_comment_link): ?><div class="post"><div class="navigation"> <div class="alignleft"> <?php echo $next_comment_link; ?> </div> <div class="alignright"> <?php echo $prev_comment_link; ?> </div></div><div class="clear"></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. --> <?php if (!is_page()) : ?><div class="post"> <p class="nocomments"><?php _e('Comments are closed.', 'kubrick'); ?></p> <div class="clear"></div> </div> <?php endif; ?> <?php endif; ?><?php endif; ?><?php if ('open' == $post->comment_status) : ?><div class="post"><div id="respond"> <h3><?php comment_form_title( __('Leave a Reply', 'kubrick'), __('Leave a Reply for %s', 'kubrick') ); ?></h3><div class="cancel-comment-reply"><small><?php cancel_comment_reply_link(); ?></small></div><?php if ( get_option('comment_registration') && !$user_ID ) : ?><p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.', 'kubrick'), get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode(get_permalink())); ?></p><?php else : ?><?php comment_form(); ?><?php endif; // If registration required and not logged in ?></div><div class="clear"></div></div><?php endif; // if you delete this the sky will fall on your head ?> اگر مشکل باقی بود بفرمایید 3 نقل قول لینک به ارسال
Mekaeil Andisheh 346 ارسال شده در فروردین 93 مالک گزارش بازنشر ارسال شده در فروردین 93 (ویرایش شده) سلامممنون از راهنماییتون .من توی صفحه اصلی سایتم برای آخرین پست های سفارشیم، کنار خود نوشته هم نظرات کاربران و هم افزودن نظر رو نشون میده یعنی کاربر میتونه توی صفحه اصلی هم نظرات رو ببینه و هم اضافه کنه و تعدادش هم محدود نیست. این عکس رو ببینید :کنار هر پست سفارشیم این رو نشون میده که کاربر روش کلیک کرد اون موقع اون بخش رو نشون میده .اگر نظری هم موجود نباشه مینویسه نظری موجود نیست.ولی توی کدی که شما فرمودید وقتی اضافه کردم این عکس که بالا اشاره کردم حذف شد.حالا مشکل من اینه که من میخوام دو تا قالب نظر داشته باشم مثلا وقتی میتونیم برای single پست های سفارشی single-products.php رو داشته باشیم آیا میشه برای کامنت هم همچین کاری کرد ؟ یک قالب برای صفحه ایندکس و یک قالب برای صفحات single بسازم به شکل comments-single.php .حالا که اینکار رو کردم تداخل کامنت پیش میاد .ممنون میشم بفرمائید به چه سبکی انجامش بدم. تشکر ویرایش شده فروردین 93 توسط Mekaeil Andisheh نقل قول لینک به ارسال
Mekaeil Andisheh 346 ارسال شده در فروردین 93 مالک گزارش بازنشر ارسال شده در فروردین 93 (ویرایش شده) من درست متوجه مشکل نشدمبرای نمایش نظرات در صفحه اصلی این کد را استفاده کنید<?php$comments = get_comments(array('post_id' => $id));wp_list_comments(array('per_page' => 4), $comments);?>[/longbox]اگر مشکل باقی بود بفرماییدسلام مجدد / من مشکل قالب کامنت رو حل کردم الان کد زیر استفاده میکنم : <?php/***/?><footer class="footerPro col-lg-12 col-md-12 col-sm-12 col-xs-12"><?php if ( post_password_required() ) : ?><p class="nopassword"><?php _e( 'This post is password protected. Enter the password to view any comments.', 'atrebartar' ); ?></p></footer><!-- #comments --><?php/* Stop the rest of comments.php from being processed,* but don't kill the script entirely -- we still have* to fully load the template.*/return;endif;?><h3 class="headercomment col-lg-6 col-md-6 col-sm-6 col-xs-6" >نظرات کاربران</h3><?php if ( have_comments() ) : ?><?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> <nav id="comment-nav-above"> <h1 class="assistive-text"><?php _e( 'Comment navigation', 'atrebartar' ); ?></h1> <div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'atrebartar' ) ); ?></div> <div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'atrebartar' ) ); ?></div> </nav><?php endif; // check for comment navigation ?> <section id="comments-home" class="comments col-lg-12 col-md-12"> <aside> <?php /* Loop through and list the comments. Tell wp_list_comments() * to use soheilsystem_comment() to format the comments. * If you want to overload this in a child theme then you can * define soheilsystem_comment() and that will be used instead. * See soheilsystem_comment() in atrebartar/functions.php for more. */ wp_list_comments( array( 'callback' => 'atrebartar_comment' ) ); ?> </aside> </section><?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> <nav id="comment-nav-below"> <h1 class="assistive-text"><?php _e( 'Comment navigation', 'atrebartar' ); ?></h1> <div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'atrebartar' ) ); ?></div> <div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'atrebartar' ) ); ?></div> </nav><?php endif; // check for comment navigation ?><?php/* If there are no comments and comments are closed, let's leave a little note, shall we? * But we only want the note on posts and pages that had comments in the first place. */if ( ! comments_open() && get_comments_number() ) : ?> <p class="nocomments"><?php _e( 'Comments are closed.' , 'atrebartar' ); ?></p><?php endif; ?><?php else : ?><section id="comments-home" class="comments col-lg-12 col-md-12"> <aside> <img alt="no-comments" src="<?php bloginfo('template_directory'); ?>/img/no-comments.png" > <p> دیدگاهی برای این محصول در حال حاضر وجود ندارد. سوال یا دیدگاه اول را شما مطرح نمائید. </p> </aside></section><?php endif; // have_comments() ?><!--**** send comment ***--><h3 class="headeradd col-lg-6 col-md-6 col-sm-6 col-xs-6" >افزودن نظر</h3> <section id="addcomments-home" class=" col-lg-12 col-md-12"><?php// Custome Comment Form$com_args = array('label_submit'=>'ارسال نظر','class' => 'submit','id_submit' => 'submit-index','fields' => ' <input id="author" class="inputbg" name="author" type="text" value="'.$commenter['comment_author'].'" placeholder="لطفا نام خود راوارد نمائید" required aria-required="true"> <input id="email" class="inputbg" name="email" type="text" value="'.$commenter['comment_author_email'].'" placeholder="لطفا ایمیل خود را وارد نمائید" required aria-required="true"> <input id="url" class="inputbg" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" placeholder="وبلاگ / وبسایت" > ','comment_field' => ' <textarea id="message" name="comment" class="sendcomment" rows="4" col="40" name="comment" aria-required="true"> </textarea> ','comment_notes_after' => '','comment_notes_before' => '');// Generate Custome Form with $com_args optionscomment_form($com_args); ?></section><!-- #comments --> و برای فراخوانی در صفحه اصلی از کد زیر استفاده میکنم: ( از کدی که فرمودید استفاده کردم مشکل داشت)<?php $withcomments = "1"; comments_template('',true); ?>و برای فراخوانی در صفحه single از کد زیر استفاده میکنم :<?php comments_template('',true); ?>الان اصلی ترین مشکل من اینه که وقتی کامنتی برای مطالب پیش فرض یعنی قسمت نوشته ها ارسال میکنم این کامنت ها برای همه مطالب نمایش داده میشه و برای یکی از پستهای سفارشی هم نمایش داده میشه نمیدونم چرا کامنت ها رو با هم قاطی میکنه ویرایش شده فروردین 93 توسط Black_sky :برای کدهای بلند از longbox استفاده کنید نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در فروردین 93 گزارش بازنشر ارسال شده در فروردین 93 دو امکان هست یا فرمتون ایراد داره یا حلقهاین کدهای ساخت حلقه ی نمایش نظراته if ($comments) :<?php $comment_count = get_comment_count($post->ID); echo $comment_count['approved']; ?> Comments<ul class="commentlist"><?php foreach( $comments as $comment ) :// stuff to display the comment in an LI hereendforeach;?></ul><?php else :if ('open' == $post->comment_status) :// If comments are open, but there are no comments.else :// comments are closedendif;endif;منبع https://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display#The_Comments_Loopبرای تست فرم بعد از ثبت نظر قالب را به دیفالت برگردونید و ببینید باز مشکل نمایش نظر روی همه مطالب وجود داره یا خیر اگر نداشت مشکل از حلقه نمایشه اگر داشت مشکل از فرمتون 2 نقل قول لینک به ارسال
Mekaeil Andisheh 346 ارسال شده در فروردین 93 مالک گزارش بازنشر ارسال شده در فروردین 93 (ویرایش شده) دو امکان هست یا فرمتون ایراد داره یا حلقهاین کدهای ساخت حلقه ی نمایش نظراتهواقعا گیج شدم من قبلا اینکار رو کرده بودم به همچین مشکلی برنخوردم.الان حتی رفتم کامنت های theme پیشفرض وردپرس 2012 ، رو گذاشتم باز هم همین مشکل رو دارهاون که بی مشکله پس مشکل از کجا میتونه باشه ؟؟ امکان داره از توابع function باشه ؟حتی کامنت های قسمت نوشته ها رو هم با هم قاطی میکنه فقط پست های سفارشی نیستفایل comments.php رو پیوست کردم خدمتتونcomments.phpاین هم فایل قسمت function : // comment functionfunction atrebartar_comment( $comment, $args, $depth ) {$GLOBALS['comment'] = $comment;switch ( $comment->comment_type ) : case 'pingback' : case 'trackback' : ?> <aside class="post pingback"> <p><?php _e( 'Pingback:', 'atrebartar' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __( 'Edit', 'atrebartar' ), '<span class="edit-link">', '</span>' ); ?></p> <?php break; default : ?> <aside id="comment-<?php comment_ID(); ?>" class="comment-item "> <?php $avatar_size = 68; if ( '0' != $comment->comment_parent ) { $avatar_size = 39; echo get_avatar( $comment, $avatar_size ); } else ?> <img src="<?php bloginfo("template_directory"); ?>/css/img/gravatar.png"> <header> <p> <?php /* translators: 1: comment author, 2: date and time */ printf( __( '%1$s در %2$s ', 'atrebartar' ), sprintf( '<span class="fn author-name">%s</span>', get_comment_author_link() ), sprintf( '<time pubdate datetime="%2$s">%3$s</time>', esc_url( get_comment_link( $comment->comment_ID ) ), get_comment_time( 'c' ), /* translators: 1: date, 2: time */ sprintf( __( '%1$s', 'atrebartar' ), get_comment_date()) ) ); ?> </p> <?php if ( $comment->comment_approved == '0' ) : ?> <em class="comment-awaiting-moderation"><?php _e( 'نظر شما پس از تایید نمایش داده میشود.', 'atrebartar' ); ?></em> <br /> <?php endif; ?> </header> <?php comment_text(); ?> </aside> <!-- #comment-## --> <?php break;endswitch;} ویرایش شده فروردین 93 توسط Black_sky برای کدهای بلند از longbox استفاده کنید نقل قول لینک به ارسال
Mekaeil Andisheh 346 ارسال شده در فروردین 93 مالک گزارش بازنشر ارسال شده در فروردین 93 مشکل کامنت رو پیدا کردمآقای فخار عزیز سپاسگزارم از راهنماییتونمن توی single یکسری از پست های سفارشی رو فراخوانی کرده بودم و query با نوشته قاطی میشد و توی کدها query رو reset نکرده بودwp_reset_query(); 2 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .