• 05-02-2017, 00:05:46
    #1
    Arkadaşlar, önceki temamda wordpresste spam yorumları engellemek için wp-comments-post.php dosyasına eklenen küçük bir kod ve temanın comment.php dosyasına eklenen bir checkbox koduyla tüm spam yorumlara çözüm bulmuştum. Eklenti olmadan tüm spam yorumları engelliyordum. Fakat aradan uzunca bir zaman geçti ve ben temamı değiştirdim.
    Sonra bu yeni tema için internetten aramalarımla benim kullandığım eski koda benzer bir kod buldum ve uyguladım fakat yeni temada çalışmadı. Eski kodu hatırlamıyorum. Aşağıda verdiğim kodun herhangi bir yerinde hata olduğunu düşünüyorum. Bilgisi olan varsa yardımcı olabilir mi acaba?

    SORUN: Yorum yazıp onay kutusunu işaretledikten sonra gönder butonunana basmama rağmen kod, bu kutuyu işaretlememişim gibi yorumu engelliyor.

    SORU: Hata kodda mı, uygulamada mı, temada mı yoksa başka birşeyde mi olabilir?

    NOT: wp-comments-post.php'ye eklediğim kodu php taglari arasına yerleştiriyorum.

    KOD;

    comments.php'ye eklenen
    <input name="onay" value="evet" type="checkbox" /> Lütfen yorumunuzu onaylayın
    wp-comments-post.php'ye eklenen
    if($_POST[onay]!="evet"){die("Lutfen Yorum onay kutusunu isaretleyin.");}
  • 05-02-2017, 02:34:04
    #2
    if(!isset($_POST["onay"])){
    	echo "Yorumu Onayla";
    	exit();
    }
    şeklinde kullanım doğru olacaktır
  • 05-02-2017, 03:49:02
    #3
    Cevabınız için teşekkür ederim fakat böyle deneyince de aynı sonucu elde ettim.
  • 05-02-2017, 08:18:38
    #4
    Platin üye
    Sologitar adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkür ederim fakat böyle deneyince de aynı sonucu elde ettim.
    checkboxı comments.phpnin neresine eklediniz tam olarak? form kısmında sorun olabilir.

    print_r($_POST) çıktısı nedir?
  • 05-02-2017, 16:32:20
    #5
    comment.php de farklı yerlere koyarak denedim. Örnek olarak;

    <?php if ( comments_open() ) { comment_form(); } ?>
    <input name="onay" value="evet" type="checkbox" /> Lütfen yorumunuzu onaylayın
    
    </section><!--/#comments-->
    Yorumu yazdıktan sonra, kutucuğu işaretleyip göndere basınca çıktı olarak,
    wp-comments-post.php sayfasına atlıyor ve ''Lutfen Yorum onay kutusunu isaretleyin'' uyarısı çıkıyor. Yani kutucuğu işaretlememişim gibi tepki veriyor kodlar.

    NOT: Kullandığım tema Hueman. Temadan kaynaklanabilir mi acaba?
  • 05-02-2017, 16:55:31
    #6
    <input name="onay" value="evet" type="checkbox" required="required" /> Lütfen yorumunuzu onaylayın
    şeklinde denediniz mi?

    diğer tarafta döngüye sokmanıza gerek kalmaz kutu işaretli değilse post ettirmez formu, tabi <form></form> tagları arasında ise inputunuz
  • 05-02-2017, 22:19:21
    #7
    Bu şekilde de denedim şimdi ama çözüm olmadı. <form></form> tagları arasında değil sanırım.

    Comment.php içeriğimi aktarayım;

    <?php if ( post_password_required() ) { return; } ?>
    
    <section id="comments" class="themeform">
    	
    	<?php if ( have_comments() ) : global $wp_query; ?>
    	
    		<h3 class="heading"><?php comments_number( __( 'Yorum yok ', 'hueman' ), __( '1 Yorum', 'hueman' ), __( '% Yorum', 'hueman' ) ); ?></h3>
    	
    		<ul class="comment-tabs group">
    			<li class="active"><a href="#commentlist-container"><i class="fa fa-comments-o"></i><?php _e( 'Yorum', 'hueman' ); ?><span><?php echo count($wp_query->comments_by_type['comment']); ?></span></a></li>
    			
    
    
    		</ul>
    
    		<?php if ( ! empty( $comments_by_type['comment'] ) ) { ?>
    		<div id="commentlist-container" class="comment-tab">
    			
    			<ol class="commentlist">
    				<?php wp_list_comments( 'avatar_size=96&type=comment' ); ?>	
    			</ol><!--/.commentlist-->
    			
    			<?php if ( get_comment_pages_count() > 1 && get_option('page_comments') ) : ?>
    			<nav class="comments-nav group">
    				<div class="nav-previous"><?php previous_comments_link(); ?></div>
    				<div class="nav-next"><?php next_comments_link(); ?></div>
    			</nav><!--/.comments-nav-->
    			<?php endif; ?>
    			
    		</div>	
    		<?php } ?>
    		
    		<?php if ( ! empty( $comments_by_type['pings'] ) ) { ?>
    		<div id="pinglist-container" class="comment-tab">
    			
    			<ol class="pinglist">
    				<?php // not calling wp_list_comments twice, as it breaks pagination
    				$pings = $comments_by_type['pings'];
    				foreach ($pings as $ping) { ?>
    					<li class="ping">
    						<div class="ping-link"><?php comment_author_link($ping); ?></div>
    						<div class="ping-meta"><?php comment_date( get_option( 'date_format' ), $ping ); ?></div>
    						<div class="ping-content"><?php comment_text($ping); ?></div>
    					</li>
    				<?php } ?>
    			</ol><!--/.pinglist-->
    			
    		</div>
    		<?php } ?>
    
    	<?php else: // if there are no comments yet ?>
    
    		<?php if (comments_open()) : ?>
    			<!-- comments open, no comments -->
    		<?php else : ?>
    			<!-- comments closed, no comments -->
    		<?php endif; ?>
    	
    	<?php endif; ?>
    	
    	<?php if ( comments_open() ) { comment_form(); } ?>
    
    </section><!--/#comments-->
  • 11-02-2017, 09:39:41
    #8
    Sorunumu çözdüm. Nasıl çözdüğümü anlatayım, belki başkalarına faydalı olur;

    wp-includes/comment-template.php' de bul;

    <p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required"></textarea></p>
    Devamına ekle;

    <input name="onay" value="evet" type="checkbox" /> Lütfen yorumunuzu onaylayın

    Anadizinde wp-comments-post.php'ye ekle;

    if($_POST[onay]!="evet"){die("Lutfen Yorum onay kutusunu isaretleyin.");}
    Yardımcı olmak için cevap veren arkadaşlara teşekkür ederim.