PHP ile WordPress Post’u Yönetin – Oluştur ve Güncelle

Söz verildiği gibi, bu ilk yazımın ikinci kısmı, ‘PHP – Öğretici 101 kullanarak bir WordPress Gönderisi ve Sayfa Oluşturma’. Bu makalede, güçlü bir PHP sarma sınıfı oluşturmak ve sonuçta güvenilir olarak Bölüm 1’de tartıştığım temel işlevleri ve teorileri nasıl genişletebileceğimizi göreceğiz. Her zamanki gibi, sadece doğrudan koda dalmak isteyen size sempati duyuyorum. Github depolarımdan birinde bulabilirsiniz (doğrudan bu makaleye yapışmak için çok uzun!).

Ne başarmak istiyoruz:
PHP üretim seviyesi çerçevesi tamamen işlevsel ve güvenilirdir.
Yalnızca yayınları yönetebilmek değil, aynı zamanda mevcut yayınları da yönetip güncellemek.
Onlar tarafından gönderileri bulabilir ve manipüle edebilir; Hint; Başlık veya salyangoz.
Bu makale için 2 parça olacaktır: Kullanım Notu ve Step-Demi-Adım Kılavuzu.
Daha fazla uzatmadan başlayalım! İlk olarak, GitHub’dan bir class.postcontroller.php dosyası eklediğinizden veya dosya içeriğini PHP belgenize gönderdiğinizden emin olun. Bu onsuz çalışmayacak! Bu dosyadaki kodu bu öğreticinin ikinci yarısında göreceğiz. Sınıf örnekleri aşağıdaki gibi oluşturun; $ Poster = Yeni Posta Posta Posta; Post denetleyici böyle çalışır; İlgili işlevleri kullanarak yayın özniteliğini ayarlarsınız. Sonra gönderiyi yaparsınız veya güncellersiniz. Gönderiyi güncellemek için önce arama yapmalı ve güncellenecek bir tane bulmalısınız. Kulağa oldukça basit mi?
Bu başlığın özniteliğini ayarlayın Gönderi başlığını ayarlayın. Burada HTML izin verilmez ve silinir. $ Poster-> set_title (‘başlık’); Bu tür bir yöntem, sayfa yazının türünü belirler. Gönderi türünün sümüğünü girin, örn. ‘Post’ ve ‘sayfa’. Özel yazı türleri desteklenir. $ Poster-> set_type (‘sayfa’); Bu yöntemin içeriği, gönderme içeriğini düzenler. HTML’ye izin verilir. $ Poster-> set_content (‘

Bu benim harika yeni gönderim!

‘); Bu yazar gönderinin yazarını belirler. Yazarın kimliğini yeni yazardan belirleyin. Bu bir tamsayı olmalıdır. $ Poster-> set_author_id (12); Bu salyangoz / ‘adı’ özel bir POS URL yoludur (etkinleştirilirse). Buna dikkat edin, salyangozlar kullanılıyormuş gibi, bazı hatalara neden olabilir. Bunu herhangi bir şekilde denemek ve kaçınmak için doğrulama ekledim. Özel bir karakter veya HTML izin verilmez. $ Poster-> set_post_slug (“new_slug”); Framework (yalnızca sayfa) Bu yöntem, sayfa şablonunuzu ayarlamanıza olanak tanır (sayfa olmalıdır). Farklı yazı türlerine uygulanırsa, göz ardı edilir ve hata dizisine hatalar eklenir. Giriş biçimi ‘php_template_name.php’ dir ve her tema için benzersiz olacaktır.
$ Poster-> set_page_template (‘fullwidth_page.php’); Ülke Bu yöntem sevkiyatın durumunu belirler. Mevcut seçenekler; [‘Taslak’ | ‘Yayınla’ | ‘Gecikmeli’ | ‘Gelecek’ | ‘Kişisel’ | özel kayıtlı durum] $ poster-> set_post_state (“beklemede”); Gönderi yapmak için minimum bir gereklilik elde etmek, belirli bir başlığa sahip olmaktır. Bunu aşağıdaki kodu kullanarak yapabilirsiniz; $ Poster-> set_title (“yeni yazı”); Bu düzenlendikten sonra oluşturma yöntemini çalıştırın. $ Poster-> create (); Not: Bu yöntem, aynı adı taşıyan başka yayınlar olup olmadığını kontrol edecektir (yalnızca çoğaltılmamasını sağlamak için). Bu nedenle benzersiz bir başlığa ihtiyacımız var. Mevcut yayınları güncelleyebilmemiz için, önce arama işleviyle aramalıyız. Bunu yapmak için arama yöntemini kullanırız. $ Poster-> arama (‘search_by’, ‘veri’); Bu yöntem 2 parametre, aranacak nitelikler ve aranacak veriler alır. Başlığa göre arama yapabilirsiniz; $ Poster-> search (‘başlık’, ‘veri’); Kimliğe göre arama yapabilirsiniz; $ Poster-> arama (‘id’, ‘veri’); Ve sümüklü olarak arama yapabilirsiniz; $ Poster-> arama (‘slug’, ‘veri’); Veri parametreleri dizeler (başlık veya sümüklü olarak arama yapıyorsanız) veya tamsayı (kimliğe göre arama yapıyorsanız) alır. Gönderi veya sayfa belirtilen bir parametre ile bulunamazsa, hata $ hatası dizisine eklenir. Bunu aşağıdaki kodla arayabilir ve görüntüleyebilirsiniz.
$ error = $ poster-> get_var (‘hatalar’); $ Poster-> prettyprint ($ hata); Gönderi bulunduktan sonra güncelleme yeni bir özellik ayarlayabilirsiniz. Öznitelik belirlendikten sonra, yenileme yöntemini çağırın. $ Poster-> update (); Örneğin, Post 1 (ID = 1) başlığını değiştirmek istiyorsanız, aşağıdaki kodu kullanacaksınız. $ Poster-> arama (‘id’, 1); $ Poster-> set_title (‘yeni başlık’); $ Poster-> update (); Tüm özellikler bu şekilde güncellenebilir. Değişkenleri belirtilen değişkeni almak için Get_VARS yöntemini kullanabilirsiniz. $ Poster-> get_var (‘başlık’); // başlığı döndür (ayarladıysanız) $ poster-> get_var (‘type’); // Gönderi türünü döndür (ayarladıysanız) $ poster-> get_var (‘content’); // İçeriği döndür (ayarladıysanız) $ poster-> get_var (‘kategori’); // Kategoriyi bir dizi olarak döndür (ayarlanırsa) $ poster-> get_var (‘şablon’); // şablonu döndür (ayarladıysanız) $ poster-> get_var (‘slug’); // Slug’u döndür (ayarladıysanız) $ poster-> get_var (‘yazar_id’); // Yazar kimliğini döndür (ayarladıysanız) $ poster-> get_var (‘durum’); // Gönderinin durumunu döndür (ayarladıysanız) $ poster-> get_var (‘Hatalar’); // Hata dizisini döndürür/ ** Bir gönderi oluşturduktan veya bir tane için başarılı bir şekilde aradıktan sonra bunları kullanabilirsiniz **/ // yayının PHP nesnesini döndürün. Bu, arama yönteminin başarılı $ poster-> get_var (‘current_post’) olup olmadığını kontrol etmek için kullanılabilir; // Seçilen yayının kimliğini (tamsayı) döndürün. $ Poster-> get_var (‘current_post_id’);
// Seçilen Post Poster-> get_var (‘current_post_permalink’) ‘nin URL geçirgenliğini döndür; Bu budur! Kullanımla ilgili sorularınız varsa, bana buradaki yorumlarda sorabilirsiniz. Bir hata bulursanız, bana Github’da bahset. İkinci bölüm için mi çalışıyorsunuz? Bina Sınıfı: Adım Adım Kılavuz Şimdi sınıfın nasıl kullanılacağını gördük, başa dönelim. Sınıfımıza kontrol sonrası olarak adlandırılacak; Sınıf Post -Kontrolör {. . . Sınıf işlevleri buraya gider. . . } PHP sınıfında deneyimsiz olanlar için sınıf, birlikte çalışan bir işlev ve değişken koleksiyonu içeren bir nesne olarak tanımlanır. Çerçevemizi oluşturmak için kullanacağımız sözdizimi ve teori hakkında daha fazla ayrıntı için php.net’e bkz. Bir sonraki görev listemizde, kullanacağımız tüm değişkenleri bildirmektir.
// POST VERİLERİ için Değişkenler Public $ PC_TITLE; public $ pc_type; public $ pc_content; public $ pc_category; public $ pc_template; public $ pc_slug; public $ pc_auth_id; public $ PC_STATUS = “Publish”; // genel olarak güncelleme için değişkenler $ PC_CURRENT_POST; public $ pc_current_post_id; genel $ pc_current_post_permalink; // hata dizisi genel $ pc_errors; Tamam, hadi üç bloğa bölün. İlk blok, belirttiğiniz gönderim verilerini tutacaktır. Bu, güncellemek ve bir yayın yapmak için kullanılacak veriler (oraya geldiğimizde) olacaktır. Değişkenin adıyla tahmin edebilseniz de, kaydetmek istediğimiz verilerin bir listesi.
Başlık
Türler (sayfalar/yayınlar, vb.)
Doldurmak
Kategori/kategori
Sayfa şablonu
Salyangoz
Kimlik yazarı ve
Post Durumu (örneğin yayınlanmış/taslak)
İkinci blok, arama isteğimiz (veya yapıldıktan sonra yapılan yayınlarla ilgili veriler) tarafından döndürülecek gerçek WordPress posta verilerini depolayacaktır.’$ PC_CURRENT_POST’ değişkeni, tüm yazıdaki nesneleri barındırır.Bu, yukarıda listelenen (önemli) veriler dahil POS hakkındaki tüm verileri barındırır.Benzer şekilde, posta kimliği ve uygun bağlantı değişkenleri mevcut yayınlarla ilgili veri parçalarını depolar.Üçüncü ve nihayet blok yalnızca bir değişkeni vardır: bir hata dizisi.Sorun bilinen bir ‘tutam’ noktasında bulunursa, referansınız için sorunla ilgili mesaj bu diziye eklenecektir.Sadece iyi alışkanlıklar nedeniyle ‘PC_’ girdiğimi lütfen unutmayın: değişken adlar belirsiz olmamalı.PC ‘Posta Posta’ anlamına gelir.Bunu değiştirirseniz, get_var () işlevindeki önek değiştirmeyi de unutmayın.
Tam, şimdi her şeyi hazırladıktan sonra, ilk işlevimize dalalım. // oluşturma işlevleri genel işlevi create () {if (isset ($ this-> pc_title))) {if ($ this-> pc_type == ‘sayfa’) {$ post = get_page_by_title ($ this-> pc_title, ‘object’ , $ this-> pc_type); } else {$ post = get_page_by_title ($ this-> pc_title, ‘object’, $ this-> pc_type); } $ Post_data = Array (‘post_title’ => wp_strip_all_tags ($ this-> pc_title), ‘post_name’ => $ this-> pc_slug, ‘post_content’ => $ this-> PC_CONTENT, ‘Post_status’ => $ this- > Pc_status, ‘post_type’ => $ this-> pc_type, ‘post_author’ => $ this-> pc_auth_id, ‘post_category’ => $ this-> pc_category, ‘page_template’ => $ this-> pc_template); if (! isset ($ post)) {$ this-> pc_current_post_id = wp_insert_post ($ post_data, $ error_obj); $ this-> pc_current_post = get_post ((integer) $ this-> pc_current_post_id, ‘object’); $ this-> pc_current_post_permalink = get_permalink ((integer) $ this-> pc_current_post_id); Dönüş $ error_obj; } else {$ this-> update (); $ this-> Hatalar [] = ‘Bu sayfa zaten var. İçeride güncellemeyi deneyin. Control Update () işlevine bağlı olarak. ‘; yanlış döndür; }} else {$ this-> hata [] = ‘Başlık ayarlanmadı.’; yanlış döndür;
}} Bu serinin 1. Bölümünü okuyanlar için: PHP – Öğretici 101 kullanarak bir WordPress Gönderisi ve Sayfa Oluşturma, bu işlev size tanıdık görünecektir. Bu, bu yeni ayara ayarlandıktan sonra öğreticinin son işlevidir. Bu özel işlevin açıklamasını okumak için Bölüm 1’i kontrol etmeyi öneririm. İşlevin kendisindeki tek ana fark, WordPress’in başına işlev eklemek yerine hemen gerçekleştirilmesidir. Hızlı bir çalışma olarak, işlev başlığın ayarlandığını kontrol eder (bu, yayınlama için minimum bir gerekliliktir). Ardından mevcut yayınları kontrol edin (başlığa göre). Bir gönderi bulunursa, hat hatasına bir mesaj eklenir ve kontrol güncelleme işlevine () iletilir. Gönderi bu başlıkta bulunmazsa, yeni bir yazı oluşturmak için $ Post_data kullanılır. Geçerli posta değişkeni (ve diğer 2 veri değişkeni) bu yeni yayın verilerini karşılayacak şekilde güncellenir. Bu, yeni yaptığınız yayınları kontrol etmek için iyidir. Bir sorun varsa, $ hatalar dizisine mesaj eklenir. Oldukça hızlıysa özür dilerim: Biraz kafası karışmışsanız, bu konuda 101. maddemi okumanızı öneririm. Hala benimle olan herkes için devam edelim. // Post’un başlıklı genel işlevi set_title ($ name) {$ this-> pc_title = $ name; $ This-> pc_title; } // POST’un TÜRÜ TÜRÜ TÜRÜ FONKSİYONU SET_TYPE ($ TYPE) {$ this-> pc_type = $ type; Dönüş $ this-> pc_type; } // POST’un İçerik Kamu İşlevi Set_Content ($ Content) {$ this-> PC_CONTENT = $ Content; Dönüş $ this-> pc_concent; } // Post’un yazar kimliği genel işlevi set_author_id ($ yazar) {$ this->
Pc_auth_id = $ auth_id; Dönüş $ this-> pc_auth_id; } // Post’un devlet genel işlevini set set_post_state ($ content) {$ this-> pc_status = $ content; Dönüş $ this-> pc_status; } Bu bit oldukça basit. Create () işlevleri ve güncellemeleri () her ikisi de veri kaynağı olarak yerel değişkenleri kullanır. Bu nedenle verileri ayarlamak için bir yola ihtiyacımız var. İlk 5 değişken yukarıda görebileceğiniz gibi ayarlanmıştır. ‘Ya diğer 3?’, Sorduğunu duydum. Endişelenmeyin, işte işte, ancak girdilerini doğrulamak için küçük bir doğrulama olduğunu göreceksiniz (güvenilirliği en üst düzeye çıkarmak için). // Post Slug Public işlevini ayarlayın set_post_slug ($ slug) {$ args = array (‘name’ => $ slug); $ post_query = get_posts ($ args); if (! get_posts ($ args) &&! get_page_by_path ($ this-> pc_slug)) {$ this-> pc_slug = $ slug; Dönüş $ this-> pc_slug; } else {$ this-> hata [] = ‘Zaten kullanımda olan sümüklü.’; yanlış döndür; }} // sayfa şablonu genel işlevi set_page_template ($ content) {if ($ this-> pc_type == ‘sayfa’) {$ this-> pc_template = $ content; Dönüş $ this-> pc_template; } else {$ this-> hata [] = ‘Yalnızca sayfalar için şablonları kullanabilirsiniz.’; yanlış döndür; }} // kategori kimlikleri kategorilere ekle kamu işlevi add_category ($ ids) {if (is_array ($ ids)) {foreach ($ ids olarak $ ids) {if (is_int ($ id)) {$ this-> Pc_category [] = $ id; } else {$ this-> hataları [] = ‘‘. $ id. ‘ geçerli bir tamsayı girişi değildir.’; yanlış döndür; }}} else {$ this-> hata [] = ‘Geçerli bir dizide belirtilen giriş.’; yanlış döndür;
}} Son üçü biraz daha karmaşıktır, ancak korkunç hatalardan kaçınmak çok önemlidir. Set_post_slug () işlevi set_post_slug () çok dikkatli olmanız gereken bir şeydir. Salyangoz Post temel olarak bireysel bir yazı adresi oluşturmak için temel URL’nin sonuna eklenen bir dize. Bu, WordPress tarafından temel yayınların tanımlanması olarak da kullanılır. Örneğin. Bu posta salyangozu ‘yönetme-word-post-php-create-update’dir. Bu, bu makalenin benzersiz bir URL’sini oluşturmak için temel URL olan http://wpexplorer.com/’un sonuna eklendi: http://www.wpexplorer.com/manage-wordpress-posts-prp-create-update /. Birden fazla gönderi aynı sümüklü (ve dolayısıyla URL) varsa karşılaşacağınız sorunları hayal edebileceğinizden eminim. Mümkünse bu gerçekten kötü bir kaos kaçınılmalıdır. Bu eşsiz yazı sümüklü olarak doğrulama için bir nedendir. Olan şey, belirli bir sümüklü bir yazı bulma işlevinin. Hiçbir şey bulunmazsa ve bir yol olarak bir sayfa yoksa (temelde bu bağlamda salyangozlarla aynı), o zaman iyi! Değişkenleri ayarlayın. Değilse, $ hatalar dizisine hata eklenir ve değişken ayarlanmamıştır (boolean false döndürme işlevi). set_page_template () & add_category () set_page_template () sayfaya bir sayfa şablonu (my_page_template.php şeklinde) ve yalnızca bir sayfa sağlar. Burada doğrulama, yalnızca yayın türünün ‘sayfa’ olarak ayarlanıp ayarlanmadığını kontrol eder.
. Doğruysa, verileri kaydedin. Değilse, zahmet etmeyin. add_category (), gönderme kategorisine bir tamsayı dizisi eklemenize olanak tanır (sadece 1 numara eklemese bile, dizide kalmalıdır). Tamsayılar kategori kimliğini temsil eder. Doğrulama yalnızca belirttiğiniz dizi boyunca tekrarlanır ve her hücrenin bir tamsayı değeri olduğunu kontrol eder. Hücrenin bir tamsayı değeri varsa, hücre ana kategorisine eklenecektir. Değilse, o zaman göz ardı edilir ve hata dizisine hatalar eklenir. Muhteşem! Şimdi ihtiyacımız olan tüm değişkenleri belirleyebiliriz. Bu öğreticinin başında arama yaparak, mevcut WordPress yayınlarını güncelleme olanağı olan bir sistem oluşturmak istediğimizi söyledik. Böylece bu mümkün, önce düzenlemek istediğimiz yazıyı bulmalıyız. Bunun için arama işlevini () kullanacağız. // POST işlevlerini arayın genel işlev arama ($ by, $ data) {switch ($ by) {// ID’s ID’s ‘ID’ kullanarak yayın arayın: if (is_integer ($ data) && get_post ((integer) $ $ veri)! == null) {$ this-> pc_current_post = get_post ((integer) $ data, ‘nesne’); $ this-> pc_current_post_id = (integer) $ veri; $ this-> pc_current_post_permalink = get_permalink ((integer) $ veri); Dönüş; } else {$ this-> hataları [] = ‘Bu kimlikle yayın bulunamadı.’; yanlış döndür; } kırmak; Case ‘Başlık’: $ Post = get_page_by_title ($ data); if (! $ post) {$ post = get_page_by_title ($ data, object, ‘post’); } $ id = $ post-> id; if (is_integer ($ id) && get_post ((integer) $ id)! == null) {$ this-> pc_current_post = get_post ((integer) $ id, ‘object’); $ this->
Pc_current_post_id = (integer) $ id; $ this-> pc_current_post_permalink = get_permalink ((integer) $ id); Dönüş; } else {$ this-> hata [] = ‘Bu başlıkta yayın bulunamadı.’; yanlış döndür; } kırmak; // Slug Case ‘slug’ kullanarak yazı arayın: $ args = Array (‘name’ => $ veri, ‘max_num_posts’ => 1); $ post_query = get_posts ($ args); if ($ post_query) {$ id = $ Posts_query [0]-> id; } else {$ this-> hata [] = ‘O slug ile yayın bulunamadı.’; } if (is_integer ($ id) && get_post ((integer) $ id)! == null) {$ this-> pc_current_post = get_post ((integer) $ id, ‘object’); $ this-> pc_current_post_id = (integer) $ id; $ this-> pc_current_post_permalink = get_permalink ((integer) $ id); Dönüş; } else {$ this-> hata [] = ‘O slug ile yayın bulunamadı.’; yanlış döndür; } kırmak; Varsayılan: $ this-> Hatalar [] = ‘Gönderi bulunamadı.’; yanlış döndür; kırmak; }} Bu bir arama işlevi (). Bir PHP anahtarı deyimi kullanıyorum (bu durumda, yuvalanmışsa birkaçdan daha verimli olacak farklı bir IF deyimi biçimi. ‘2’ye dayalı arama’. Aradığınız veriler yukarıdaki koddan görebilir ” ID ‘,’ Başlık ‘ve’ Salyangoz ‘3 seçeneği var.
. Her birine biraz daha yakın bakalım. Bu kimliğe dayalı arama en basit arama yöntemidir ve yalnızca tamsayı kimliğini bulmanızı gerektirir. Belirtilen veriler bir tamsayı ise, işlev WordPress veritabanınıza bir sorgu gönderir (doğuştan Get_Post () işlevini kullanarak). Bu tamsayılarla ilgili direkler varsa, posta nesnesi döndürülecek ve PC_Current_Post değişkeninde depolanacaktır (ayrıca ID ve Permalink de saklanır). Basit! Başlığa göre arama bunun gerçekten çok fazla açıklama gerektirdiğini düşünmüyorum: neredeyse kimliğe dayalı arama ile aynı, ancak başlığa dayalı yayınları aramak. Aynı ada sahip bir yayın/sayfanız varsa (tavsiye etmediğim bir şey), en küçük kimliğe sahip yayın seçilir. Aynı ada sahip bir yayınız olduğunu biliyorsanız, karışıklığı önlemek için bu yöntemi kullanmayın. Lütfen dikkat: Bu kodu göreceksiniz; $ post = get_page_by_title ($ data); if (! $ post) {$ post = get_page_by_title ($ data, object, ‘post’); } Bunu yapmamızın nedeni, get_page_by_title () yayınlar ve sayfalar için verileri geri yükleyebilmesine rağmen, sayfayı yalnızca üçüncü parametre ‘yazı’ olarak belirlenmedikçe döndürür.

. Neyin net olduğunu belirtmek istemiyorum, ancak başlığa bakıyorsanız ve başlığı aynı anda değiştiriyorsanız, kodun yalnızca bir kez (ilk kez) çalıştırılacağını fark edin. Bundan sonra 404 bulunamadı hata döndürür. Bu slug’a dayalı arama, yayınları bulmak için iyi ve güvenilir bir yöntemdir. Belirsizlik olmamalı çünkü daha önce de söylediğim gibi salyangozlar benzersiz olmalı. ‘Salyangoz’ ile ne demek istediğimi anlamıyorsanız set_post_slug () bölümüne bakın. Bunu yapmak için, yalnızca belirli bir sümüklü yayınları bulmak için WordPress gönderisini çalıştırmamız gerekir. Bu yöntemden kimlik alabilir ve geçerli posta değişkeni diğer 2 yöntemle aynı şekilde ayarlayabiliriz. Başlığa dayalı arama ile aynı şekilde, sülüğü birlikte aramak ve değiştirmek sorunlara neden olacaktır. Dikkat et! Doğru güncelleyin ve yönetin! Arama tamamlandığına göre, gerçek güncelleme () işlevine geçebiliriz. // POST POWL FONCTION Update () {if (isset ($ this-> PC_CURRENT_POST_ID)) {// POST’un güncelleneceğini bildirme kimliği $ pc_post [‘id’] = $ this-> pc_current_post_id; // ($ this-> pc_title) && $ this-> pc_title! == $ this-> $ pc_post-> post_title) {$ pc_post [‘post_title’] = $ this-> PC_TITLE; } if (isset ($ this-> pc_type) && $ this-> pc_type! == $ this-> pc_current_post-> Post_type) {$ pc_post [‘Post_type’] = $ this-> pc_type; } if (isset ($ this-> pc_auth_id) && $ this-> pc_auth_id! == $ this-> pc_current_post-> Post_type) {$ pc_post
] = $ this-> pc_auth_id; } if (isset ($ this-> pc_status) && $ this-> pc_status! == $ this-> pc_current_post-> Post_status) {$ pc_post [‘Post_status’] = $ this-> pc_status; } if (isset ($ this-> pc_category) && $ this-> PC_CATECTORY! } if (isset ($ this-> pc_template) && $ this-> pc_template! == $ this-> pc_current_post-> page_template && ($ pc_post [‘post_type’] == ‘sayfa’ ||> post_type == ‘sayfa ‘))) {pc_post [‘ page_template ‘] = $ this-> pc_template; } if (isset ($ this-> pc_slug) && $ this-> pc_slug! == $ this-> pc_current_post-> post_name) {$ args = array (‘name’ => $ this-> pc_slug); } if (! get_posts ($ args) &&! get_page_by_path ($ this-> pc_slug)) {$ pc_post [‘post_name’] = $ this-> pc_slug; } else {$ errors [] = ‘Slug tanımlı benzersiz değildir’; } if (isset ($ this-> pc_content) && $ this-> pc_content! == $ this-> pc_status-> Post_content) {$ pc_post [‘post_content’] = $ this-> pc_content; } wp_update_post ($ pc_post); } return ($ hataları);
} Yalan söylemeyeceğim, bu gerçekten çok kolay. Temel olarak, reform işlevi, 8 post parametreden birinin belirlenip belirlenmediğini görmek için kontrol eder. Eğer öyleyse, wp_update_post () ile uyumlu bir dizi yapar ve doldurur. Bu wp_update_post () ve hey presto çalıştırır! İş iyi yapılır. Verimlilik için, her bir değişkeni ayarlamadan önce basit bir onay işareti ekleyeceğiz. Yalnızca değişmişse güncellenir. Biraz önyargılı olmama rağmen, bunun güzel bir kod olduğunu itiraf etmeliyim! WordPress’in kendisi tarafından döndürülen değere kıyasla belirtilen değer. O zaman sadece basit bir karşılaştırma gerekli. Diğerlerinden daha hafif bir doğrulama varsa şablon ve sümük ifadesinin olduğunu göreceksiniz. Bu hatayı filtrelemek için doğrulama eklememize rağmen, yeniden kontrol edilmesinde herhangi bir zarar yoktur! Sayfa şablon muayenesi (gönderinin türünün sayfaya ayarlanıp ayarlanmadığını kontrol etmek) Post olmayan için sayfa şablonunu ayarlamaya çalışmak benim sorunumdur. Aşırı cinayet için üzgünüm! Diğer taraftaki salyangoz kontrolleri önemlidir! Gerçekten salyangoz çatışması yapmak istemiyorsun. Bu durumda, aşırı cinayet diye bir şey yoktur. () Güncellemek için yeterlidir. Son olarak, birkaç yararlı genel işlevimiz var. Ek Fonksiyonlar Artık çoğu sınıf yazılmıştır, bazı yararlı işlevler eklemek/zamandan tasarruf etmek için her zaman iyi bir fikir. Bak; // genel işlevler genel işlev get_content () {if (isset ($ this-> pc_current_post-> post_content)) {return $ this-> pc_current_post-> post_content;
}} genel işlev get_var ($ name) {$ name = ‘pc _’. $ name; if (isset ($ this-> $ name)) {return $ this-> $ name; }} genel işlev unset_all () {foreach (get_class_vars (get_class ($ this)) $ name => $ varsayılan) {$ this-> $ name = $ varsayılan; }} genel işlev __tosting () {return ‘Bu nesnenin içeriğini döndürmek için güzel iz işlevini kullanın. Örneğin;

 $ my_post-> prettyprintall (); } public function prettyprint ($ data) {echo "
"; print_r ($ data); echo "

"; } public function prettyprintAll () {echo "

"; print_r ($ this); echo "

"; } Hızlı Açıklama; get_content (): Bu işlev, aradığınız yayın içeriğini geri yükler (bu WordPress tarafından sağlanır ve sizin tarafınızdan ayarlanmaz). Bu herhangi bir parametreyi kabul etmez.
get_var ('var_name'): Bazen çok fazla veri düzenlediğinizde kafa karıştırıcı olabilir. Bu bir parametre alır: İstediğiniz değişken adını dize. Aşağıda mevcut 'var_name' listesi;
'Başlık' - belirlediğiniz yazı başlığı.
'Tür' - ayarladığınız yazı türü.
'İçerik' - ayarladığınız içerik.
'Kategori' - ayarladığınız kategoriler (dizileri geri yükle).
'Şablon' - ayarladığınız sayfa şablonu.
'Slug' - ayarladığınız slug.
'Auth_id' - ayarladığınız kimlik yazarı.
'Durum' - belirlediğiniz gönderme durumu.
'Current_post' - WP Post Nesnesi Aramadan sonra geri.
'Current_post_id' - WP Post Kimliği aramadan sonra döndürülür.
'Current_post_permalink' - Kalıcı bağlantı WP postası aramadan sonra döndürülür.'Errors ' - dizi hatası (çok kullanışlı).
Unset_all (): Parametre yok. Tek iş. Sınıf örneğinde depolanan tüm verileri silin. Dikkat et.
__Tosting (): Sınıfın kendisi yazdırıldığında gerçekleştirilen şey budur. Basılı hata mesajları. PrettyPrintAll () kullanın
// Yeni Sınıf $ PoSter = Yeni PostController (); // Yankılanan hata mesajı echo $ poster;
PrettyPrint (): Bu sadece 'Pre' etiketinde nesneleri ve dizileri iyi görüntüleyen kullanışlı bir işlevdir. Bir parametre alın: Veri 'Pretty Basked' olur.
PrettyPrintAll (): Tüm sınıf örnekleri (tüm değişkenler dahil) hariç, PrettyPrint () ile aynıdır.
Ve bu bir sargı! Makalemi okuduğunuz için teşekkür ederim: Umarım yararlı ve aydınlatıcı bulursunuz! GitHub: PostController'da Post -Kontrolör Sınıfının en son sürümünü bulabilirsiniz. Bu öğreticiden hoşlanıyorsanız, lütfen paylaşın! (Söz çok yanlış olacak: @harriBllthomas). Sorularınız varsa, yorumlar bölümünü aşağıda bırakın.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir