İçindekiler
WordPress içerik üreticileri için aynı başlıkla yazı girilmesini engelleyen, SEO’ya katkı sağlayan mükemmel bir çözüm! Bu makalede, yazı başlıklarınızın benzersizliğini otomatik olarak kontrol eden bir sistem kurmanızı sağlayacak WordPress kodunu detaylıca anlatıyoruz. Kodları functions.php
dosyasına eklemeden önce mutlaka functions.php
dosyasının yedeğini alın.
İlginizi çekebilir 👉 WordPress Softindir Mini Tool Eklentisi
Bu kod, yeni bir yazı eklerken ya da mevcut bir yazıyı düzenlerken başlığın ilk iki kelimesine göre veritabanında arama yapar. Eğer bu iki kelimeyle başlayan bir içerik zaten varsa, kullanıcıya uyarı verir ve mevcut yazının bağlantısını gösterir.
Örnek:
Başlık: WordPress SEO Ayarları
Uyarı: ⚠️ Aynı başlığa sahip bir içerik mevcut: WordPress SEO İpuçları
post-new.php
ve post.php
sayfalarında çalışır (yeni yazı ekleme ve düzenleme).publish
) yazılar arasında kontrol yapar.Aşağıdaki kodları tema veya child tema functions.php
dosyanıza yapıştırın:
//* ÇİFT BAŞLIK KONTROLÜ BAŞLANGIÇ
function check_duplicate_title_ajax() {
if (!isset($_POST['post_title'])) {
wp_send_json_error(['message' => 'Başlık alınamadı.']);
wp_die();
}
global $wpdb;
$post_title = sanitize_text_field($_POST['post_title']);
$words = explode(' ', $post_title);
if (count($words) < 2) {
wp_send_json_success(['exists' => false]);
wp_die();
}
$first_two_words = strtolower($words[0] . ' ' . $words[1]);
$query = $wpdb->prepare("
SELECT ID, post_title
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = 'post'
AND post_title LIKE %s
LIMIT 1
", $first_two_words . '%');
$result = $wpdb->get_row($query);
if ($result) {
wp_send_json_success([
'exists' => true,
'post_id' => $result->ID,
'post_title' => $result->post_title,
'post_url' => get_permalink($result->ID)
]);
} else {
wp_send_json_success(['exists' => false]);
}
wp_die();
}
add_action('wp_ajax_check_duplicate_title', 'check_duplicate_title_ajax');
add_action('wp_ajax_nopriv_check_duplicate_title', 'check_duplicate_title_ajax');
function add_duplicate_title_checker_script() {
global $pagenow;
if ($pagenow !== 'post-new.php' && $pagenow !== 'post.php') return;
?>
<script>
jQuery(document).ready(function($) {
function checkDuplicateTitle() {
var title = $('#title').val().trim();
if (title.length < 2) return;
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'check_duplicate_title',
post_title: title
},
success: function(response) {
if (response.success && response.data.exists) {
if ($('#duplicate-warning').length === 0) {
$('#titlewrap').after(
'<div id="duplicate-warning" style="color: red; font-weight: bold; padding: 10px; background: #ffe6e6; border-left: 5px solid red; margin-top: 10px;">' +
'⚠️ Aynı başlığa sahip bir makale mevcut: ' +
'<a href="' + response.data.post_url + '" target="_blank" style="color: blue; text-decoration: underline;">' +
response.data.post_title + '</a></div>'
);
}
} else {
$('#duplicate-warning').remove();
}
}
});
}
$('#title').on('input', function() {
clearTimeout($(this).data('timer'));
$(this).data('timer', setTimeout(checkDuplicateTitle, 500));
});
});
</script>
<?php
}
add_action('admin_footer', 'add_duplicate_title_checker_script');
//* ÇİFT BAŞLIK KONTROLÜ BİTİŞ
İstersen bu sistemi daha da özelleştirebilirsin:
product
, page
) de çalıştırmaEğer WordPress sitenizde içerik kalitesini artırmak, SEO açısından sorun yaratacak başlık tekrarlarının önüne geçmek istiyorsanız, bu kod tam size göre. Hem kolay uygulanabilir hem de son derece işlevsel.
📥 Yukarıdaki kodları sitenize ekleyerek hemen kullanmaya başlayabilirsiniz!
💡 Daha fazla WordPress ipucu ve faydalı kod için bizi takip etmeye devam edin.