Tách Trackbacks từ Comment trong WordPress

Làm thế nào để Tách Trackbacks từ Comments là không Hack mới, nhưng khi WordPress phát hành phiên bản 2.7, họ đã giới thiệu một hệ thống bình luận cải tạo mới trong đó bao gồm ý kiến ren, khả năng để đánh số trang và nhiều hơn nữa.Nhưng cùng với sự thay đổi này, họ cũng thay đổi rất nhiều thông số tập tin lõi. Trong bài viết này, chúng tôi sẽ cho bạn thấy làm thế nào bạn có thể tách trackback từ bình luận trong WordPress. Hack này sẽ chỉ làm việc cho phiên bản 2.7+ và nếu bạn không sử dụng nó, sau đó bạn nên bắt đầu ngay bây giờ vì gần đây tấn công MySQL trên phiên bản cũ .

Chúng tôi tìm thấy hướng dẫn này trên một trong những trang web của các nhà phát triển của WordPress gọi Sivel.net

Dưới đây là một ví dụ về các vòng lặp mới mà chúng tôi sẽ đề cập đến trong hướng dẫn:

[php]<?php if ( have_comments() ) : ?>
<h3 id="comments"><?php comments_number(‘No Responses’, ‘One Response’, ‘% Responses’ );?> to %u201C<?php the_title(); ?>%u201D</h3>
<ol class="commentlist">
<?php wp_list_comments(); ?>
</ol>
<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">Comments are closed.

<?php endif; ?>
<?php endif; ?> [/php]

Tìm đoạn code này trong comments.php


[php]<?php </code><code class="keyword">if</code> <code class="plain">( have_comments() ) : ?></code> :[/php]

Ngay dưới code này thêm mã sau đây:

[php]<?php if ( ! empty($comments_by_type['comment']) ) : ?>
[/php

Once you have added the above code then find this code:

<?php wp_list_comments(); ?>[/php]

Thay thế mã trên bằng đoạn code sau:


[php]<?php wp_list_comments(</code><code class="string">'type=comment'</code><code class="plain">); ?>[/php]

Bây giờ như bạn thấy trong ví dụ vòng lặp của chúng tôi có một mã cho danh sách có thứ trông giống như

[php]</ol>[/php]

Ngay dưới code này thêm :


[php]<?php </code><code class="keyword">endif</code><code class="plain">; ?>[/php]

Bây giờ bằng cách thêm thẻ endif, nếu bạn không có bất kỳ ý kiến, danh sách đặt hàng sẽ không được hiển thị. Bây giờ cho phép chuyển sang việc thêm ping đến các ý kiến.

Thêm đoạn mã sau dưới hoặc tuy nhiên bạn muốn hiển thị nó. Nó sẽ hiển thị các lệnh ping.

[php]<?php if ( ! empty($comments_by_type['pings']) ) : ?>
<h3 id="pings">Trackbacks/Pingbacks</h3>
<ol class="commentlist">
<?php wp_list_comments('type=pings'); ?>
</ol>

<?php endif; ?>[/php]

Bây giờ khi bạn có điều này nó sẽ hiển thị các trackback nhưng nó sẽ hiển thị họ cũng giống như ý kiến. Bây giờ bạn có thể muốn hiển thị chúng như một danh sách vì khôn ngoan khác bạn chỉ là lãng phí thời gian. Vì vậy, đây là cách bạn có thể làm điều đó.

Đơn giản chỉ cần mở functions.php mà là ở chủ đề của bạn thư mục và thêm các chức năng sau đây trong đó:

[php]<?php
function list_pings($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
?>
<li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?>
<?php } ?> [/php]

Chức năng này sẽ cho phép bạn hiển thị ping như một danh sách thay vì hiển thị như một nhận xét. Nhưng bạn phải làm một điều nữa.

Mở comments.php của bạn và tìm thấy code này:

[php]<ol>
<?php wp_list_comments('type=pings'); ?> [/php]

Thay thế nó bằng:

[php]<ol>
<?php wp_list_comments('type=pings&callback=list_pings'); ?>[/php]

Bây giờ các bản sao cuối cùng của ví dụ vòng lặp sẽ xem xét điều này:

[php]<?php if ( have_comments() ) : ?>
<?php if ( ! empty($comments_by_type['comment']) ) : ?>
<h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to %u201C<?php the_title(); ?>%u201D</h3>
<ol class="commentlist">
<?php wp_list_comments('type=comment'); ?>
</ol>

<?php endif; ?>

<?php if ( ! empty($comments_by_type['pings']) ) : ?>
<h3 id="pings">Trackbacks/Pingbacks</h3>
<ol class="pinglist">
<?php wp_list_comments('type=pings&callback=list_pings'); ?>
</ol>

<?php endif; ?>
<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">Comments are closed.

<?php endif; ?>
<?php endif; ?>[/php]

Bây giờ bạn đã làm xong. Có một hack tiền thưởng mà bạn có thể sử dụng. Vì bạn đang hiển thị một cách riêng biệt, nó sẽ là tốt nếu bạn hiển thị số bình luận chính xác bằng cách loại trừ trackback và ping. Sử dụng hướng dẫn này chúng ta đã viết để hiển thị các số bình luận chính xác nhất trong WordPress .

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.