Alperen Özlü

Menu

Kategori: Wordpress

İngilizce WordPress’i Türkçe Yapmak

Özellikle özel panellerden kurulan wordpressler veya dile dikkat edilmeden kurulan wordpressler ileride başımızı ağrıtabiliyor. Fakat wordpress yönetim paneli dilini değiştirmek sandığınızdan çok daha kolay, haydi başlayalım.

Continue reading “İngilizce WordPress’i Türkçe Yapmak”

WordPress Yorum Güvenliği, Spam’a Son

wplogoblue-stacked-rgbWordPress blogu yorum kısımlarından gelen spam mesajlar bazen canımızı sıkabiliyor. Captcha kodları kullanıcıyı sıkabiliyor veya zor ve okunamaz karakterler gelebiliyor. Bu yüzden kullanıcıya basit bir toplama işlemi sorarak, sistemimizi korumalı bir hale getirmemiz gerekiyor. Maalesef şuan böyle bir eklenti yazacak durumda değilim ama basit 2 kod değiştirerek bunu kolay bir şekilde yapabiliyoruz.

Lütfen adımları dikkatli takip edin ve belirtilen 2 dosyada değişim yapmadan önce yedek almayı unutmayın.

Temamız içinde comment.php dosyasında uygun bir yere bunu ekliyoruz.

<?php
@session_start(); // Session Başlat ve hata vermemesi için @ koyduk.

    $number1 = rand(1,9); // 1.Sayı
    $number2 = rand(1,9); // 2.Sayı
    $sum = $number1+$number2; // Sayıları Topla
    $_SESSION['security_question'] = "$sum";// Session'a Ata
	echo ''.$number1.' + '.$number2.' işleminin cevabı?';
?>

<input type="text" placeholder="Cevabı buraya yazınız" name="security_question" autocomplete="off" size="5">

Php kodları arasında bulunan kısımda, @ işareti koyarak session komutunun verebileceği hatayı ekrandan kaldırdık. ?> ‘dan sonra ki kısımda ise, sonuç kısmını alacağımız bir input koyduk.

Şimdi buradan gelen değeri gönderdiğimizde, bir ekranda kontrol etmemiz gerekiyor. WordPress’i kurduğunuz dizine gelip  wp-comments-post.php dosyasını açıyoruz. Önce yedek alıyoruz ve ardından dosya içeriğini tamamen silerek, aşağıda bulunan kodu yapıştıyoruz.

<?php
/**
 * Handles Comment Post to WordPress and prevents duplicate comment posting.
 *
 * @package WordPress
 */

if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
	header('Allow: POST');
	header('HTTP/1.1 405 Method Not Allowed');
	header('Content-Type: text/plain');
	exit;
}

session_start();

// Quiz kontrol ediliyor
if($_SESSION['security_question'] != $_POST['security_question']) {
    echo 'Basit bir toplama islemini yanlis yapmis olamazsin degil mi? <br/> <a href="javascript:history.go(-1)">Geri Don</a> ';
    die(); }
else {

/** Sets up the WordPress Environment. */
require( dirname(__FILE__) . '/wp-load.php' );

nocache_headers();

$comment_post_ID = isset($_POST['comment_post_ID']) ? (int) $_POST['comment_post_ID'] : 0;

$post = get_post($comment_post_ID);

if ( empty($post->comment_status) ) {
	do_action('comment_id_not_found', $comment_post_ID);
	exit;
}

// get_post_status() will get the parent status for attachments.
$status = get_post_status($post);

$status_obj = get_post_status_object($status);

if ( !comments_open($comment_post_ID) ) {
	do_action('comment_closed', $comment_post_ID);
	wp_die( __('Sorry, comments are closed for this item.') );
} elseif ( 'trash' == $status ) {
	do_action('comment_on_trash', $comment_post_ID);
	exit;
} elseif ( !$status_obj->public && !$status_obj->private ) {
	do_action('comment_on_draft', $comment_post_ID);
	exit;
} elseif ( post_password_required($comment_post_ID) ) {
	do_action('comment_on_password_protected', $comment_post_ID);
	exit;
} else {
	do_action('pre_comment_on_post', $comment_post_ID);
}

$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

// If the user is logged in
$user = wp_get_current_user();
if ( $user->exists() ) {
	if ( empty( $user->display_name ) )
		$user->display_name=$user->user_login;
	$comment_author       = $wpdb->escape($user->display_name);
	$comment_author_email = $wpdb->escape($user->user_email);
	$comment_author_url   = $wpdb->escape($user->user_url);
	if ( current_user_can('unfiltered_html') ) {
		if ( wp_create_nonce('unfiltered-html-comment_' . $comment_post_ID) != $_POST['_wp_unfiltered_html_comment'] ) {
			kses_remove_filters(); // start with a clean slate
			kses_init_filters(); // set up the filters
		}
	}
} else {
	if ( get_option('comment_registration') || 'private' == $status )
		wp_die( __('Sorry, you must be logged in to post a comment.') );
}

$comment_type = '';

if ( get_option('require_name_email') && !$user->exists() ) {
	if ( 6 > strlen($comment_author_email) || '' == $comment_author )
		wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') );
	elseif ( !is_email($comment_author_email))
		wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') );
}

if ( '' == $comment_content )
	wp_die( __('<strong>ERROR</strong>: please type a comment.') );

$comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');

$comment_id = wp_new_comment( $commentdata );

$comment = get_comment($comment_id);
do_action('set_comment_cookies', $comment, $user);

$location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#comment-' . $comment_id;
$location = apply_filters('comment_post_redirect', $location, $comment);

wp_safe_redirect( $location );
exit;
}

Kaydedip, yorum kısmını kontrol edelim.

Not :  Wordpress 3.5.1 sürümü için denenmiştir. Lütfen işlem yapmadan önce iki dosyanın da yedeğini alın. Twentyten gibi temalarda yorum kısmı comments.php de bulunmaz, eğer comments.php de kodları göremiyorsak, wp-includes/comment-template.php dosyasına bakmamız gerekiyor.

[Solved] WordPress Contact Form 7 Error on Godaddy

Hello,

In this web site, i was want to do some changes. More importantly thing is about server. As a result, my web site is based in Godaddy Web Servers. Okay, now our problem is about Contact Form 7 Plugin.

Problem : In CF7, when you are trying to send an message, CF7 give an error.

Solution:

  1. Go to WordPress Panel and Enter your Plugins.
  2. Click to “Add New” button and search  Configure SMTP plugin.
  3. Setup it and go to Configure SMTP Settings.
  4. After that enter this information;

SMTP host : relay-hosting.secureserver.net

SMTP port : 25

 Check it here;