WordPress belülről

Kategóriák hozzászólásának automatikus lezárása

Vannak bizonyos kategóriák, melynek bejegyzési mondhatni nem időtállóak. Egy idő után érvényüket vesztik valamilyen szinten, vagy egy üzleti blog esetében az adott ajánlat csak x ideig érvényes. Hogy csak egy példát mondjak erre, adott egy hitellel foglalkozó oldal, blog, amely közzé teszi a legfrissebb akciós hitelajánlatokat. Ezek mivel csak egy ideig érvényesek, mint minden akció, ezért célszerű csak egy adott ideig nyitva hagyni a hozzászólásokat, hogy miután már érvényét veszti az akció a felhasználók ne ott kérdezzenek, hanem a legfrissebb kedvezményeknél. Így könnyedén tarthatjuk rendben honlapunk úgy, hogy ezáltal a böngészők a legfrissebb információkat olvassák. Íme tehát a kód amellyel kategóriára szűrve, időre beállítva zárhatjuk le a hozzászólásokat. A kódot sablonunk functions.php fájljába kell másolnunk. Természetesen a kategória ID-ket, illetve az időt, ne felejtsétek el meghatározni az első és a 16. sorban.

function wpe_close_comments_for_old_post( $open, $post_id, $cat = array(1, 4), $days_old = '' ) {
	if ( !$open )
		return $open;

	if ( in_category($cat) )
		return $open;

	if ( '' === $days_old )
		$days_old = (int) get_option('close_comments_days_old');

	if ( !$days_old )
		return $open;

	$post = get_post($post_id);

	if ( time() - strtotime( $post->post_date_gmt ) > ( $days_old * 24 * 60 * 60 ) )
		return false;

	return $open;
}
add_filter( 'comments_open', 'wpe_close_comments_for_old_post', 10, 2 );
add_filter( 'pings_open',    'wpe_close_comments_for_old_post', 10, 2 );