Wordpress Etiketleri Silip 404 Düşmemenin Yolu Var mı? (ÇÖZÜLDÜ) konusunda binlerce etiketi olan siteleri SORUNSUZ nasıl yönlendirme yapabilirim sorusuna kendim sorup kendim yanıt verdim..
Şimdi de
Wordpresste Binlerce Etiketi Toplu Silme Eklentisi Var mı? sorusuna yanıt verip r10 üyerlerine katkıda bulunmak istedim.
Aşağıdaki kodu bir .php dosyası olarak kaydedin (örneğin, toplu-etiket-silici.php olarak adlandırabilirsiniz). Dosyayı WordPress wp-content/plugins klasörüne ekleyin ve eklentiyi WordPress'ten etkinleştirin.
<?php
/*
Plugin Name: Toplu Etiket Silici
Description: WordPress'te etiketleri topluca silmek için "Hepsini Seç" özelliğine sahip basit bir eklenti.
Version: 1.1
Author: R10.net TahsinCetinkaya
*/
if (!defined('ABSPATH')) {
exit; // Güvenlik için doğrudan erişimi engelle
}
// Admin menüsüne eklentiyi ekleyelim
add_action('admin_menu', 'toplu_etiket_silici_menu');
function toplu_etiket_silici_menu() {
add_submenu_page(
'tools.php', // "Araçlar" menüsünün altına ekler
'Toplu Etiket Silici',
'Toplu Etiket Silici',
'manage_options',
'toplu-etiket-silici',
'toplu_etiket_silici_arayuz'
);
}
function toplu_etiket_silici_arayuz() {
// Form gönderildiyse etiketi silelim
if (isset($_POST['etiketler']) && is_array($_POST['etiketler'])) {
foreach ($_POST['etiketler'] as $etiket_id) {
wp_delete_term((int) $etiket_id, 'post_tag');
}
echo '<div class="updated"><p>Seçilen etiketler başarıyla silindi.</p></div>';
}
// Tüm etiketleri alalım
$etiketler = get_terms(array(
'taxonomy' => 'post_tag',
'hide_empty' => false,
));
echo '<div class="wrap">';
echo '<h1>Toplu Etiket Silici</h1>';
echo '<form method="post" id="toplu-etiket-silici-form">';
echo '<table class="form-table">';
// Hepsini seç kutusu
echo '<tr>';
echo '<th><input type="checkbox" id="hepsini-sec"></th>';
echo '<td><strong>Hepsini Seç</strong></td>';
echo '</tr>';
// Etiketleri listeleyelim
foreach ($etiketler as $etiket) {
echo '<tr>';
echo '<th><input type="checkbox" name="etiketler[]" value="' . esc_attr($etiket->term_id) . '" class="etiket-checkbox"></th>';
echo '<td>' . esc_html($etiket->name) . '</td>';
echo '</tr>';
}
echo '</table>';
echo '<p><input type="submit" value="Seçilen Etiketleri Sil" class="button button-primary"></p>';
echo '</form>';
echo '</div>';
// JavaScript ile hepsini seç/deselect fonksiyonunu ekleyelim
?>
<script type="text/javascript">
document.getElementById('hepsini-sec').addEventListener('change', function() {
var checkboxes = document.querySelectorAll('.etiket-checkbox');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = this.checked;
}
});
</script>
<?php
}- Admin Menüsüne Ekleme: tools.php menüsünün altına "Toplu Etiket Silici" adında bir menü eklenir.
- Etiketleri Listeleme ve Seçme: Etiketler, bir tablo şeklinde listelenir. Her bir etiket için bir checkbox bulunur.
- Etiketleri Silme: Form gönderildiğinde seçili etiketlerin term_id değerleri alınır ve wp_delete_term fonksiyonu ile silinir.
Bu eklenti etkinleştirildiğinde, WordPress panelinizin "
Araçlar" menüsü altında "
Toplu Etiket Silici" adında yeni bir seçenek göreceksiniz.