سعید شعبانی

رفع مشکل عدم نمایش پینگ ها در نظرات وردپرس

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

سلام

بخش کامنت قالب من به صورت 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
}

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


لینک به پست

فکر کنم این جواب میده


<?php
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case 'pingback' :
case 'trackback' :
?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<p><?php _e( 'Pingback:'); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)' ), '<span class="edit-link">', '</span>' ); ?></p>
<?php
break;
default :
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
break;
endswitch; // end comment_type check
}

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

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


لینک به پست

پینگ توی مدیریت فعال شده؟

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


لینک به پست

اینجا با مثال توضیح داده:

http://bacsoftwareconsulting.com/blog/index.php/wordpress-cat/wordpress-how-to-separate-comments-from-trackbacks-pingbacks-using-wp_list_comments-function/

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


لینک به پست

اینجا با مثال توضیح داده:

http://bacsoftwareconsulting.com/blog/index.php/wordpress-cat/wordpress-how-to-separate-comments-from-trackbacks-pingbacks-using-wp_list_comments-function/

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

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


لینک به پست

با این بخش کد هم تست کردید؟

<!-- PINGS (TRACKBACKS & PINGBACKS) SECTION -->
<?php
//If there are No pings, don't display the header and the navigation. One reason is that get_comment_pages_count() function is used to calculate the
//total number of comments pages. It does not separate for pings. So when the count is 0, the navigation still shows and it mimics the comments
//section. Second reson if there are no Pings, then why display the header.
if ((get_comments_number() - comments_only_count($count)) > 0) {

echo '<h3 id="comments-title">';
printf( _n( 'One Ping to %2$s', '%1$s Pings to %2$s', get_comments_number() - comments_only_count($count), 'twentyten' ),
number_format_i18n( get_comments_number() - comments_only_count($count) ), '<em>' . get_the_title() . '</em>' );
echo '</h3>'?>

<ol class="commentlist">
<?php
wp_list_comments('type=pings&callback=twentyten_comment');
?>
</ol>
<?php
//get_pings_pages_count() is a custom function that must be added to 'functions.php' file.
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there Comments to navigate through? ?>

<div class="navigation">
<div class="nav-previous"><?php previous_comments_link( __( '<span class="meta-nav">←</span> Older Pings', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Pings <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
</div><!-- .navigation -->

<?php endif; // check for comment navigation ?>
<?php } ?>

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


لینک به پست

با این بخش کد هم تست کردید؟

<!-- PINGS (TRACKBACKS & PINGBACKS) SECTION -->
<?php
//If there are No pings, don't display the header and the navigation. One reason is that get_comment_pages_count() function is used to calculate the
//total number of comments pages. It does not separate for pings. So when the count is 0, the navigation still shows and it mimics the comments
//section. Second reson if there are no Pings, then why display the header.
if ((get_comments_number() - comments_only_count($count)) > 0) {

echo '<h3 id="comments-title">';
printf( _n( 'One Ping to %2$s', '%1$s Pings to %2$s', get_comments_number() - comments_only_count($count), 'twentyten' ),
number_format_i18n( get_comments_number() - comments_only_count($count) ), '<em>' . get_the_title() . '</em>' );
echo '</h3>'?>

<ol class="commentlist">
<?php
wp_list_comments('type=pings&callback=twentyten_comment');
?>
</ol>
<?php
//get_pings_pages_count() is a custom function that must be added to 'functions.php' file.
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there Comments to navigate through? ?>

<div class="navigation">
<div class="nav-previous"><?php previous_comments_link( __( '<span class="meta-nav">←</span> Older Pings', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Pings <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
</div><!-- .navigation -->

<?php endif; // check for comment navigation ?>
<?php } ?>

اینو توی comments.php بگذارم؟

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


لینک به پست

بله

بزاردی و ببینید تعداد پینگ یا ترک رو نمایش میده؟

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


لینک به پست

چه خطایی میده؟

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط 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>  
    • توسط احمد وردپرس
      با سلام .
      چطوری سایت وردپرسم رو به یه سایت شبیه http://pingomatic.com/ تبدیل کنم . در فوترش نوشته وردپرس2014
      در کل کار پینگ چیه؟؟توجیحم کنید لطفاَ
    • توسط سافت سرا
      سلام. من می خوام تو بخش مدیریت/ویرایش پست یه دکمه اضافه کنم که وقتی روش کلیک می کنم تمام نظرات پست به حالت آرشیو در بیان.
      مثلا یه پست دارم که 4 تا نظر داخلش داده شده و من روی آرشیو نظرات مربوط به پست که کلیک می کنم این نظرات از بخش نظرات پست حذف میشه و در انتهای بخش نظرات یه لینکی قرار داده میشه مثلا تحت عنوان نظرات آرشیو شده و وقتی کاربر کلیک کرد می تونه نظرات قدیمی رو هم ببینه.
      البته می دونم پیچیدگی زیادی داره و نمیشه در چند خط توضیح داد. فقط می خوام بدونم میشه همچین کاری کرد و زمان زیادی نمی خواد؟
      مثلا اساتید همین سایت می تونن در عرض 2 ساعت این کارو انجام بدن؟
      اگه اینجوری باشه خود با تحقیق شروع به انجامش کنم.
      البته اگر دوستان حاضر به انجمش هستند که بهتر. حق الزحمه شون هم پرداخت میشه.
      البته دقیقن به همین شکل هم لازم نیست باشه. مثلا بشه نظرات رو دید و یه لینک یا دکمه مثله حذف یا ویرایش نظرات که هر نظری رو خواستیم آرشیو کنیم نه همش رو.
    • توسط سعید شعبانی
      سلام
      من از commennts.php برای نظرات سایتم استفاده می کنم. حالا می خواستم خارج از این فایل (مثلا داخل single.php) در صورت وجود داشتن حداقل یک نظر (یعنی اگر نظری وجود داشت) یک کد html را نشان دهد.
    • توسط J4V4D
      سلام دوستان؛
      آیا برای فعال شدن بازتابها (دریافت بازتاب هنگام گذاشتن لینک یک نوشته از سایت تو یه نوشته دیگه) علاوه بر زدن تیک دو گزینه مربوطه در قسمت گفتگوها ، به قالب هم باید کد خاصی اضافه بشه؟
      تشـــــکر