2014-10-25 2 views
0

WordPress 4.0을 사용하고 있습니다.X 일이 지난 기사의 댓글을 자동으로 닫습니다. 댓글은 숨김

내 목표는 14 일이 넘지 만 허용 된 시간대에 만들어진 기존 댓글을 여전히 볼 수 있도록 게시물에 새로운 댓글을 사용 중지하는 것입니다.

Settings-> Discussion에는 "x 일이 지난 기사에 대한 메모를 자동으로 닫습니다"라는 옵션이 있습니다. 이 옵션을 선택하고 x를 14 일로 설정합니다.

나는 이것이 14 일 넘은 게시물의 댓글을 단순히 닫을 것이라고 생각했지만 14 일이 지난 게시물에 대한 댓글을 숨기고 있습니다.

테마의 comments.php 파일을 확인했으며 댓글을 숨기고있는 테마임을 나타내는 내용이 표시되지 않습니다.

저는 상대적으로 스택 오버플로에 익숙합니다. 하루 종일이 질문을 봤는데 스택 오버플로를 검색하고 대답을 찾을 수 없습니다. 그래서이 문제를 일으키는 코드가 comments.php에 없으면 내 질문에 맞습니까?

감사합니다.

+0

꽤 이상한데, 어떤 테마를 사용하고 있습니까? –

+0

@Anand 내 바보 게시물을 삭제할 수 있었으면 좋겠습니다. 나는 물론 내가 게시 한 후에 대답을 알아 냈다. Bluthemes에서 Vivid를 사용하고 있습니다. comments.php에 문제가 없습니다. 문제는 single.php에있었습니다. single.php의 끝에는 comments_template()에 대한 호출이 있지만 주석이 열려있는 경우에만 호출됩니다. 주석이 닫힌 경우에는 else 문이 없으므로 주석이 닫힌 경우 comments_template()에 대한 호출이 수행되지 않습니다. single.php에 else 문을 추가해야했고, 고정 된 것으로 생각합니다. 어쩌면 이것은 Blushhemes에 의해 Vivid를 사용하는 누군가를 도울 것입니다 ... – LeonardShelby

답변

1

특정 일수 후에 소식의 댓글을 사용 중지하려면이 코드를 사용하십시오. 이 코드를 테마의 functions.php 파일에 넣으십시오.

<?php function autoclose_comments() { 
    global $wpdb, $tableposts; 

    if (!isset($tableposts)) 
     $tableposts = $wpdb->posts; 

     $age = '21 DAY'; 

     $date = $wpdb->get_var("SELECT DATE_ADD(DATE_SUB(CURDATE(), INTERVAL $age), INTERVAL 1 DAY)"); 
     $wpdb->query("UPDATE $tableposts SET comment_status = 'closed' WHERE comment_status = 'open' AND post_status = 'publish' AND post_date < '$date'"); 
} 

귀하의 요구 사항에 따라 $age을 설정할 수 있습니다.

관련 문제