
Mark Lucas
0
1224
296
Bir WordPress bloguna sahip olmak ve çalıştırmak, özellikle ilk başladığınızda, çok eğlencelidir. Siteyi tasarlamak ya da güzel bir tema seçmek ve ilk birkaç mesajı yazdığınızdan emin olduğunuz devasa insan sürüsü beklentisiyle yazmak size yol gösteriyor. Gerçekliğin vurması çok uzun sürmüyor, ve onu bilmeden önce temayı beğenmediğinizi, ziyaretçi akışının bir kandırmacadan öte bir şey olmadığını ve web sunucunuzun ihtiyaç duyduğunuz beygir gücüne sahip olmadığını fark ettiniz..
Bir blogun büyümesi yıllar alır ve çok fazla acı ve mücadele - Aibek'in buna tanıklık edeceğinden eminim. O zaman büyük geçişler var, bazı önemli değişiklikler yapmanız gerektiğinin farkına vardığınızda ve bu çok fazla iş gerektirecek.
Kendi blogumda yapmak zorunda olduğum birçok önemli değişiklik var, ancak en zorlarından biri Google reklamlarını blog makalelerime eklemek için belirli bir manuel yöntem kullanmamdan kaynaklanıyordu..
Gönderileri Tek Bir SQL Komutuyla Değiştirme
Sorun şu ki, birkaç yıl çalıştıktan sonra, Google'ın el ile eklediği reklamla yaklaşık 1000 gönderi yayınlamıştım. Eğer bir değişiklik yapmak isteseydim, düzenlemek istediğim bin mesaj var..
2010'da yazdığım harika post-şablon eklentisini kullanmak istedim. Bu, ilerleyen reklamların eklenmesini otomatikleştiriyordu, ancak mevcut reklamların tümünü kaldırmadan kullandıysam, iki eski makalelerdeki reklamlar.
Eski reklamı kaldırmak için biraz SQL sihirbazı yapmak zorunda kaldım ve bugün bunu sizlerle paylaşacağım. Eylem phpMyAdmin'de gerçekleşir ve blogunuzun veritabanını sol menüden seçmeniz gerekir..
İçeriğinizin bölümlerini çıkarmak için kullanacağınız kod, SQL etiketinde olacaktır. Bununla demek istediğim, size göstereceğim kod, 2 - 200 veya daha fazla blog yazılarında mevcut olan herhangi bir içeriği kaldırmak için kullanabileceksiniz. Tek gereksinim, kaldırmak istediğiniz şeyin ortak bir başlangıç metnine ve bir bitiş metnine sahip olması gerektiğidir - bir Google reklamı gibi ortak bir başlangıç etiketine ve bir bitiş etiketine sahip olmalıdır..
Bu, yeni blog girişlerimin nasıl göründüğü, reklamın hemen ardından manuel olarak eklenmesiyle “Daha” Her sayfada etiket, sağa hizalanır.
Bu kodun sayfada belirtilme şekli şöyle görünür:
Gördüğün gibi bende “komut dosyası türü” Her reklamın başında kullanabileceğim start etiketi ve “script src” sonunda kullanabileceğim bir etiket.
Demek nasıl çalışıyor? SQL'e söylemelisin “güncelleştirme” Sayfanızın o bloğunu tamamen silmek istediğiniz komut. Üç temel MySQL işlevini anlamanız gerekecek - değiştir, substr ve yerleştirmek.
İlk önce komuta başlangıç ve bitiş noktalarının konumlarını söylemek için LOCATE kullanın. Benim durumumda, dizeleri kaldırmak istediğim bölümün başında ve sonunda kullanıyorum. Başlangıç sayfasındaki başlangıç konumu:
LOCATE ('', gönderim sonrası)
Son konum daha zorlu. Bulun, dizenin başlangıcını verir, bu nedenle bitiş konumunu almak için dizenin en sonuna karakter sayısını eklemeniz gerekir..
LOCATE ('", post_content) + 93
Sonra, şunu söylemen gerekecek. “DEĞİŞTİRİN” tam olarak hangi metni değiştirmek istediğinizde işlev görür. SUBSTR işlevini kullanarak gerçek dizgiyi yazı içeriğinden çıkartarak yaparsınız. Başlangıç konumunu (şu an sahip olduğunuz) ve uzunluğu geçmelisiniz. Başlangıç konumunu son konumdan çıkartarak hesaplamanız gereken uzunluk (aynı zamanda sahip olduğunuz).
SUBSTR işlevine yukarıdaki kod eklenmiş olarak şöyle gözüküyor:
substr (post_content, bulun ('', post_content), ((bulun ('', post_content) + 93) - (bulun ('', post_content))))
Çılgın görünüyor değil mi? Ancak dikkatlice bakarsanız, gömülü üç bölüm olduğunu göreceksiniz - içerik yayınlama, başlangıç konumu ve uzunluk.
Artık yazılarınızdan kaldırmak istediğiniz tam metne sahip olduğunuza göre tek yapmanız gereken REPLACE işlevine bir boşlukla değiştirmesini söylemek. Yukarıdaki kodu aşağıdaki komuta kopyalamanız yeterlidir:
GÜNCELLEME wp_posts SET post_content = replace (post_content, string_to_replace, substit_string);
Bunun gibi:
GÜNCELLEME wp_posts SET post_content = REPLACE (post_content, substr (post_content, bul (('', post_content)), ((bul ('', post_content) + 93) - (bul (('', post_content))))) ");
Yukarıdaki betiği çalıştırarak, sözdiziminin tümü düzgün bir şekilde hizalanırsa, phpAdmin'de aşağıdaki başarılı sonuçları görmelisiniz..
Şimdi, mesajları web tarayıcımda yeniden yüklediğimde - voila! Reklam sihirli bir şekilde uzaklaştırıldı.
Beni yanlış anlama, tüm reklamlarda işe yaramadı, çünkü başlangıçta ve sonunda biraz farklı biçimlendirmelere sahip bazı eskileri vardı. Bu sayfayı beğen.
Ama birazcık ince ayar yaparak, sadece başlangıç / bitiş için kesin etiketleri değiştirerek, SQL'i yeniden çalıştırmayı ve bunları da silmeyi başardım..
Bu teknik, WordPress gönderi içeriğinizdeki tüm içeriği kaldırmaya çalışır. Bir MySQL veritabanında yayınlara sahip olmanın güzelliği budur, binlerce yazıyı aynı anda işlemek için SQL komutlarını çalıştırabilirsiniz;. Başlamadan önce veritabanınızı yedeklediğinizden emin olun.!
Bu SQL komutu için başka temiz kullanımlarınız var mı? Kendi WordPress veritabanınıza bir şans verin ve sizin için ne kadar işe yaradığını görün. Deneyimlerinizi ve görüşlerinizi aşağıdaki yorumlar bölümünde paylaşın.
Resim kredisi: Shutterstock