Eklentisiz Gönderiler için Kategori Seçimini Toplu Olarak Kaldırma
Yayınlanan: 2020-10-05“Kategori”, WordPress'te varsayılan bir sınıflandırmadır. Operatörler, blog gönderilerini farklı bölümlere ayırmak ve gruplamak için kategorileri kullanabilir. Kategoriler ayrıca ziyaretçilerin sitelerde daha hızlı gezinmesine ve web sitelerinizin hangi konularla ilgili olduğunu bilmelerine yardımcı olur. Bir web sitesi operatörü, WordPress yönetici panelleriyle kategoriler ve gönderilerle temel işlemleri uygulayabilir ve gönderileri farklı şekillerde değiştirmek için WordPress eklentilerini kullanabilir.
- 1. WordPress'in Müşterilerden Gelen Web İsteklerini Nasıl Ele Aldığını Anlamak?
- 2. WordPress Gönderilerinin Toplu Manipülasyonu İçin Önemli Tablolar
- 3. Tüm Gönderileri Bir Kategoriden Başka Bir Kategoriye Taşıma – SQL Komutlarını Kullanma
- 3.1. Belirli Bir Kategoriye Ait Tüm Gönderilerin Kimlik Listesini Alın
- 3.2. Yeni Kategorinin kimliğini alın
- 3.3. Verilen Kimlik Listeleri ile Gönderileri Güncelleyin
- 4. Son Sözler
Bununla birlikte, WordPress siteleri için eklentileri aşırı kullanmak, muhtemelen potansiyel performans sorunlarına ve güvenlik sorunlarına neden olacağından bir seçenek olmamalıdır. Bu makalede, eklentileri kullanmadan gönderiler için bir kategorinin seçimini toplu olarak nasıl kaldıracağınızı öğrenelim.
WordPress'in Müşterilerden Gelen Web İsteklerini Nasıl Ele Aldığını Anlamak?
Bir web sunucusunun bir istemciden gelen bir isteği nasıl ele aldığını anlamak, WordPress sitesini değiştirmek için gereklidir. Ayrıntılı işlemler, bir kategorideki toplu seçimi kaldırma gönderilerini içerir.
Tipik web sunucusu LAMP yığınıdır (Linux – Apache – MySQL/MariaDB – PHP). Diğer eşdeğer kavramlar, diğer web sunucusu platformlarında bulunabilir.

LAMP, sunucu-istemci iletişimini yığınlar
1. İstemci, web sunucusundan web verilerini istemek için HTTP istekleri gönderir.
2. Web sunucusu, istemcilerden geçerli HTTP istekleri alır (güvenlik duvarı kurallarını geçtikten sonra):
- HTTP isteklerinin yapısını analiz edin, istemcilerin tam olarak hangi HTML sayfalarına ihtiyaç duyduğunu belirleyin;
- İstekleri komut dosyası katmanlarına (PHP) ayrıştırma.
3. Komut dosyası katmanları PHP:
- Veritabanını sorgulayın, gerekli tüm bilgileri alın;
- Dinamik web sayfaları oluşturmak için temalardaki kaynak koduyla birleştirin;
- Web Sunucusuna dönün.
4. Web sunucusu:
- HTTP yanıt mesajları oluşturun.
- İstemcilere HTTP yanıt iletileri gönderin.
5. İstemci, web sunucusundan HTTP yanıt mesajları alır ve ardından web verilerini web tarayıcılarında görüntüler.
WordPress Gönderilerinin Toplu Manipülasyonu için Önemli Tablolar
WordPress sitelerinin veritabanı şemasında bir sürü tablo var. Şemalar siteden siteye değişir. Bununla birlikte, WordPress sitesinin gönderilerini manipüle ederken, bu tablolar daha fazla endişe kaynağı olmalıdır:
| Tablo ismi | Açıklamalar |
wp_postmeta | Bir WordPress sitesinin içerikle ilgili ek verilerini saklayın. |
wp_post | Bir WordPress sitesinin içerikle ilgili tüm önemli verilerini saklayın. |
wp_term_relationships | Gönderileri kategorilere, etiketlere, bağlantılara bağlayan tüm bağlantı verilerini saklayın. Bu tablodaki bilgiler, terim nesneleri ve terimler arasında bir harita görevi görür. |
wp_term_taxonomy | wp_terms tabloları için ek verileri wp_terms . |
wp_term | Kategorileri, gönderiler, sayfalar ve bağlantılar için etiketler depolayın. |
Tüm Gönderileri Bir Kategoriden Başka Bir Kategoriye Taşıma – SQL Komutlarını Kullanma
WordPress veritabanını doğrudan manipüle etmek için operatörlerin hangi DBMS'yi (Veritabanı Yönetim Sistemi) kullanacaklarına karar vermeleri gerekir. Laboratuar ortamı bir web platformu olarak LAMP yığınını kullandığından, operatörler phpMyAdmin, WordPress eklentileri, hatta MySQL istemcisi (terminal komutu) kullanarak WordPress veritabanlarıyla SSH oturumları aracılığıyla çalışabilirler… Bu senaryoda, DBMS daha iyi bir örnekleme amacıyla MySQL WorkBench'tir.
WordPress veritabanlarında herhangi bir değişiklik uygulamadan önce, WordPress sitesinin tam yedeğini almanız önerilir. Bu tam yedekleme, WordPress kaynak kodunu (temalar, PHP dosyaları…) ve veritabanı yapısını içerir. İdeal amaçlar için operatörler, WordPress sitesini çalıştıran tüm ana bilgisayarın tam bir yedeğini oluşturabilir.

Tüm gönderileri "Kategorisiz" kategorisinden "İlhamlar" kategorisine taşımak için eksiksiz SQL komut dosyaları.
SET @listID = (
wp_posts'tan GROUP_CONCAT(ID) SEÇİN
NEREDE post_type="post"
VE post_status = "yayınla"
VE KİMLİK GİRİŞİ (
wp_term_relationships'DEN object_id SEÇİN
NEREDE term_taxonomy_id IN (
wp_term_taxonomy'DEN term_taxonomy_id SEÇİN
WHERE taksonomisi = "kategori"
VE term_id IN (
wp_terms t'DEN t.term_id SEÇİN
WHERE t.name="Kategorize edilmemiş"
)
)
)
);
SET @newCategoryID = (
wp_terms'DEN t.term_id SEÇİN t NEREDE t.name='İlhamlar'
);
@newCategoryID'yi SEÇ;
set @sqlCmd = BİRLEŞTİR(
'GÜNCELLEME wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'NEREDE tr.object_id IN (', @listID , ');'
);
SEÇ @sqlCmd;
@sqlCmd'DEN stmt HAZIRLAYIN;
SET SQL_SAFE_UPDATES = 0;
YÜRÜT stmt;
SET SQL_SAFE_UPDATES = 1;
DEALLOCATE HAZIRLIK stmt;Ayrıntılı komut dosyası aşağıdaki gibi açıklanacaktır.
Belirli Bir Kategoriye Ait Tüm Gönderilerin Kimlik Listesini Alın
Bu demoda, "Kategorilendirilmemiş" kategorisindeki tüm gönderilerin toplu seçimini nasıl kaldıracağınızı ve ardından bunları "İlhamlar" adlı yeni bir kategoriye nasıl taşıyacağınızı göstereceğiz.
WordPress yönetici panelinden bu 3 gönderi "Kategorize edilmemiş" kategorisinde sıralanır.

Aşağıdaki SQL komutları, “Kategorisiz” adlı bir kategorinin tüm gönderi kimliğini alacaktır.
SET @listID = (
wp_posts'tan GROUP_CONCAT(ID) SEÇİN
NEREDE post_type="post"
VE post_status = "yayınla"
VE KİMLİK GİRİŞİ (
wp_term_relationships'DEN object_id SEÇİN
NEREDE term_taxonomy_id IN (
wp_term_taxonomy'DEN term_taxonomy_id SEÇİN
WHERE taksonomisi = "kategori"
VE term_id IN (
wp_terms t'DEN t.term_id SEÇİN
WHERE t.name="Kategorize edilmemiş"
)
)
)
); @listID değerini doğrulayın:

Yeni Kategorinin kimliğini alın
SET @newCategoryID = (
wp_terms'DEN t.term_id SEÇİN t NEREDE t.name='İlhamlar'
); @newCategoryID değerini doğrulayın:

Verilen Kimlik Listeleri ile Gönderileri Güncelleyin
İlk önce, bir SQL komutu oluşturun ve onu @sqlCmd değişkeninde @sqlCmd .
/* @sqlCmd değişkeninde saklanan beklenen komut:
GÜNCELLEME wp_term_relationships tr
SET tr.term_taxonomy_id = 5
NEREDE tr.object_id IN (131,132,133);
*/
set @sqlCmd = BİRLEŞTİR(
'GÜNCELLEME wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'NEREDE tr.object_id IN (', @listID , ');'
);İkincisi, doğrulayın:

Son olarak, @sqlCmd değişkeninde depolanan SQL komutlarını aşağıdaki ifadelerle verin:
@sqlCmd'DEN stmt HAZIRLAYIN; SET SQL_SAFE_UPDATES = 0; YÜRÜT stmt; SET SQL_SAFE_UPDATES = 1; DEALLOCATE HAZIRLIK stmt;
İşte sonuç:

Son sözler
WordPress sitelerindeki gönderiler için bir kategorinin seçimini toplu olarak kaldırmanın çeşitli yolları vardır. Operatörler, bir web arayüzü aracılığıyla etkileşim kurmak için eklentileri kullanarak veya WordPress veritabanı üzerinde doğrudan bir etki yapmak için SQL komutlarını kullanarak, değiştirilen temel nesnelerin ne olduğunu anlamalıdır.
Umarım bu makale, gönderiler için bir kategorinin seçimini toplu olarak kaldırmak için bir seçenek daha sunar. WordPress'te daha kullanışlı teknikler elde etmek için, gelecek makalelerimizi takip edelim!
Gönderiler için bir kategorinin seçimini daha kolay bir şekilde kaldırmak için bir eklenti kullanmak istiyorsanız bu makaleye bakın.
