سعید شعبانی

نمایش یک کد در صورت وجود داشتن حداقل یک نظر

8 پست در این موضوع قرار دارد

سلام

من از commennts.php برای نظرات سایتم استفاده می کنم. حالا می خواستم خارج از این فایل (مثلا داخل single.php) در صورت وجود داشتن حداقل یک نظر (یعنی اگر نظری وجود داشت) یک کد html را نشان دهد.

به اشتراک گذاری این پست


لینک به پست

تابع :


get_comments_number()

مثلاً:


if (get_comments_number() >= 1) ....

به اشتراک گذاری این پست


لینک به پست

من صفحه این کد را داخل وردپرس باز کردم و کد زیر که ی نمونه بود را داخل فایل single.php قرار دادم ولی هیچ چیزی اجرا نشد


<?php
$num_comments = get_comments_number(); // get_comments_number returns only a numeric value
if ( comments_open() ) {
if ( $num_comments == 0 ) {
$comments = __('No Comments');
} elseif ( $num_comments > 1 ) {
$comments = $num_comments . __(' Comments');
} else {
$comments = __('1 Comment');
}
$write_comments = '<a href="' . get_comments_link() .'">'. $comments.'</a>';
} else {
$write_comments = __('Comments are off for this post.');
}

?>

ویرایش شده در توسط سعید شعبانی

به اشتراک گذاری این پست


لینک به پست

خب در همون single.php مثلاً قرار بدید:


<?php if (get_comments_number() >= 1) { ?>
<?php echo "have comment"; ?>
<?php } else { ?>
<?php echo "NO comment"; ?>
<?php } ?>

به اشتراک گذاری این پست


لینک به پست

عالیه این کد درست کار می نه. فقط یک مورد . من می خواهم تا کد زیر به جای اون متن نشون داده بشه و اینکه وقتی هیچ نظری وجود نداره اصلا چیزی چاپ نشه


<h3><i class="icon-comments"></i>دیدگاه کاربران</h3>

الان اینجوری جایگزین کردم ولی اخطار میده


<?php if (get_comments_number() >= 1) { ?>
<?php echo "<h3><i class="icon-comments"></i>دیدگاه کاربران</h3>"; ?>
<?php } ?>

ویرایش شده در توسط سعید شعبانی

به اشتراک گذاری این پست


لینک به پست

این کد خودتونه اما آخراشو خودتون درست کنید - من نرسیدم


<?php $num_comments = get_comments_number(); // get_comments_number returns only a numeric value?>
<?php if ( comments_open() ) { ?>
<?php if ( $num_comments == 0 ) {
$comments = '0 comment';
} elseif ( $num_comments > 1 ) {
$comments = "over 1 comment";
} else {
$comments = '1 comment';
} ?>
<?php } ?> <?php echo $comments; ?>

برای زمانی که نظری نیست چیزی چاپ نشه هم شرط == 0 رو کلا حذف کنید - منطقش به هم نمیریزه

ویرایش شده در توسط isk

به اشتراک گذاری این پست


لینک به پست

خیلی ممنون عالی بود

من کد را به شکل زیر قرار دادم و درست هم کار می کنه فقط به نظرم میشه کد زیر را از این هم که هست کوتاهتر کرد.


<?php $num_comments = get_comments_number(); // get_comments_number returns only a numeric value?>
<?php if ( comments_open() ) { ?>
<?php if ( $num_comments == 0 ) {
$comments = '';
} elseif ( $num_comments > 1 ) {
$comments = '<h3><i class="icon-comments"></i>دیدگاه کاربران</h3>';
} else {
$comments = '<h3><i class="icon-comments"></i>دیدگاه کاربران</h3>';
} ?>
<?php } ?> <?php echo $comments; ?>

به اشتراک گذاری این پست


لینک به پست

<?php if ( comments_open() ) { ?>
<?php if ( get_comments_number() >= 1 ) {
$comments = '<h3><i class="icon-comments"></i>دیدگاه کاربران</h3>';
} ?>
<?php } ?> <?php echo $comments; ?>

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط aminq10
      درود
      دوستان من از کد زیر برای فایل comments.php استفاده میکنم!
      مشکل این هست که وقتی نظر جدید ثبت میشه نه در قسمت ادمین میاد و نه در قالب
      اما نظرات قبلی نشون داده میشه مشکلی نداره!
      <?php // Do not delete these lines if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if ( post_password_required() ) { ?> <p class="nocomments">این مطلب خصوصی است.در صورتی که رمز آن را دارید در قسمت زیر وارد کنید.</p> <?php return; } ?> <!-- You can start editing here. --> <div class="commentlistbk" > <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <?php if ( have_comments() ) : ?> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php wp_list_comments('avatar_size=96&type=comment'); ?> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?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. --> <p class="nocomments">نظرات بسته شده است.</p> <?php endif; ?> <?php endif; ?> </div> <?php if ('open' == $post->comment_status) : ?> <div id="respond"> <?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p>شما باید <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">وارد سایت شوید</a> تا بتوانید نظر دهید.</p> <?php else : ?> <div class="advert-comment" > <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" class="commentform" > <?php if ( $user_ID ) : ?> <?php else : ?> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-6"> <p> <label for="author"> <small><i class="fa fa-address-card fa-1x" aria-hidden="true"></i> نام<?php if ($req) echo ""; ?></small></label></p><p><input class="commentlabel" type="text" name="author" id="author" value="<?php echo $comment_author; ?>"tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> </p> </div> <div class="col-xs-12 col-sm-6 col-md-6"> <p> <label for="email"><small><i class="fa fa-envelope fa-1x" aria-hidden="true"></i> ایمیل<?php if ($req) echo ""; ?> </small></label></p><p><input class="commentlabel" type="text" style="text-align:left" name="email" id="email" value="<?php echo $comment_author_email; ?>" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> </p> </div> </div> <?php endif; ?> <!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>--> <p> <label for="email"><small><i class="fa fa-comments-o" aria-hidden="true"></i> نظر خود را بیان کنید!<?php if ($req) echo ""; ?> </small></label></p> <p><textarea name="comment" class="comment" id="comment" rows="10" tabindex="3" ></textarea></p> <p><input name="submit" class="btn btn-default" type="submit" tabindex="4" value="ثبت نظر" /> <?php comment_id_fields(); ?> </p> <?php do_action('comment_form', $post->ID); ?> </form> </div> <?php endif; // If registration required and not logged in ?> </div> <?php endif; // if you delete this the sky will fall on your head ?> </div> </div>  
    • توسط سافت سرا
      سلام. من می خوام تو بخش مدیریت/ویرایش پست یه دکمه اضافه کنم که وقتی روش کلیک می کنم تمام نظرات پست به حالت آرشیو در بیان.
      مثلا یه پست دارم که 4 تا نظر داخلش داده شده و من روی آرشیو نظرات مربوط به پست که کلیک می کنم این نظرات از بخش نظرات پست حذف میشه و در انتهای بخش نظرات یه لینکی قرار داده میشه مثلا تحت عنوان نظرات آرشیو شده و وقتی کاربر کلیک کرد می تونه نظرات قدیمی رو هم ببینه.
      البته می دونم پیچیدگی زیادی داره و نمیشه در چند خط توضیح داد. فقط می خوام بدونم میشه همچین کاری کرد و زمان زیادی نمی خواد؟
      مثلا اساتید همین سایت می تونن در عرض 2 ساعت این کارو انجام بدن؟
      اگه اینجوری باشه خود با تحقیق شروع به انجامش کنم.
      البته اگر دوستان حاضر به انجمش هستند که بهتر. حق الزحمه شون هم پرداخت میشه.
      البته دقیقن به همین شکل هم لازم نیست باشه. مثلا بشه نظرات رو دید و یه لینک یا دکمه مثله حذف یا ویرایش نظرات که هر نظری رو خواستیم آرشیو کنیم نه همش رو.
    • توسط سعید شعبانی
      سلام
      بخش کامنت قالب من به صورت wp_list_comments هست و داخل فایل فانکشن بخش مربوط به نظرات به صورت زیر هست. اما مشکلی که وجود داره این هست که پینگ پست هایی که پینگ دارند را نشون نمیده باید چیکار کنم؟


      <?php
      function mytheme_comment($comment, $args, $depth) {
      $GLOBALS['comment'] = $comment;
      extract($args, EXTR_SKIP);
      if ( 'div' == $args['style'] ) {
      $tag = 'div';
      $add_below = 'comment';
      } else {
      $tag = 'li';
      $add_below = 'div-comment';
      }
      ?>
      <<?php echo $tag ?> <?php comment_class(empty( $args['has_children'] ) ? '' : 'parent') ?> id="comment-<?php comment_ID() ?>">
      <?php if ( 'div' != $args['style'] ) : ?>
      <div id="div-comment-<?php comment_ID() ?>" class="comment-body">
      <?php endif; ?>
      <div class="comment-author vcard">
      <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
      <?php printf(__('<cite class="fn">%s</cite>'), get_comment_author_link()) ?>
      <?php the_time('d M Y'); ?>
      <?php if ($comment->comment_approved == '0') : ?>
      <em class="comment-awaiting-moderation"><?php _e('Your comment is awaiting moderation.') ?></em>
      <?php endif; ?>
      <a class="comment-link" href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>">#</a>
      <div class="reply">
      <?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
      </div>
      </div>
      <div class="comment-text <?php
      /* Only use the adminComment class from style.css if the user_id is 1 (admin) */
      if (1 == $comment->user_id)
      $oddcomment = "adminComment";
      echo $oddcomment;
      ?>">
      <?php comment_text() ?>
      </div>
      <?php if ( 'div' != $args['style'] ) : ?>
      </div>
      <?php endif; ?>
      <?php
      }

    • توسط سعید شعبانی
      مدتی بود که با کمک گرفتن از اعضای انجمن وردپرس پارسی مشغول به طراحی قالب جدیدی برای دنوج بودم و امروز تقریبا تکمیل شده و هنوز مشکلاتی مانده می خواستم نظر شما را در مورد قالب جدید بدانم و نقاط ضعف و قدرت آن را بیان کنید.
    • توسط jc313
      سلام
      میخواستم بخش نظراتم یجوری بشه که بتونن به نظرات همدیگه پاسخ بدن!
      این کد بخش comments.php منه


      <?php // Do not delete these lines
      if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
      die (__('Please do not load this page directly. Thanks!','dnld'));
      if (!empty($post->post_password)) { // Si hay alguna password
      if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>
      <p><?php _e('This post is password protected. Enter the password to view comments.','dnld'); ?>.</p>
      <?php return;
      }
      }
      /* This variable is for alternating comment background */
      ?>
      <div class="comment">
      <!-- You can start editing here. -->
      <?php if ($comments) : ?>
      <div class="commenthead"><b> <strong><span style="color: #003300;text-shadow: 0px 0px 10px #00FF33;">نظرات دیگران در مورد این مطلب. نظر شما چیست!؟</span></strong></b><br></div>
      <?php foreach ($comments as $comment): ?>
      <div class="comment-content">
      <b><?php comment_author_link() ?></cite> <?php _e('','dnld'); ?>:</b><br>
      <div id="content">
      <?php comment_text() ?>
      </div></div>

      <?php endforeach; /* end for each comment */ ?>
      <?php endif; ?>
      <br>
      <div class="commenthead"><b><span style="color: #003300;text-shadow: 0px 0px 10px #00FF33;"><strong>افزودن نظر:</strong></span></b></div>
      <div class="add-comment">
      <?php if ('open' == $post->comment_status) : ?>
      <?php if (get_option('comment_registration') && !$user_ID): ?>
      <p><?php _e('You must be','dnld'); ?> <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>"><?php _e('logged in','dnld'); ?></a> <?php _e('to post a comment','dnld'); ?></p>
      <?php else: ?>
      <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
      <?php if ($user_ID): ?>

      <small><?php _e('Logged in as','dnld'); ?> <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. (<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out','dnld'); ?>"><?php _e('Log out','dnld'); ?></a>)</small>
      <?php else: ?>
      <p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" class="c-input" />
      <label for="author"><?php _e('Name','dnld'); ?> <?php if ($req) _e('(required)','dnld'); ?></label></p>
      <p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" class="c-input" />
      <label for="email"><?php _e('E-Mail (will not be published)','dnld'); ?> <?php if ($req) _e('(required)','dnld'); ?></label></p>

      <p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" class="c-input" />
      <label for="url"><?php _e('Website','dnld'); ?></label></p>

      <?php endif; ?>

      <textarea name="comment" id="text" tabindex="4"></textarea>
      <br><br>
      <input class="comment_button" name="submit" type="submit" id="submit" tabindex="5" value="<?php _e('Submit!','dnld'); ?>" />
      <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
      <?php do_action('comment_form', $post->ID); ?>
      </form>
      </div>
      <?php endif; // If registration required and not logged in ?>
      <?php endif; // if you delete this the sky will fall on your head ?>
      </div></div>

      چیکار باید بکنم؟!