kendi yazı kontrol arayüzü çalışmıyor. copilota sorduk
Tabii ki, WordPress için bir eklenti dosyası hazırlayabiliriz. Bu şekilde, kodu ayrı bir eklenti olarak yükleyip yönetebilirsiniz. İşte bu eklentiyi oluşturmak için adım adım yapmanız gerekenler:
Eklenti Klasörü ve Dosyaları Oluşturma:
wp-content/plugins/ dizininde yeni bir klasör oluşturun ve bu klasöre
WordPress yönetici paneline gidin ve Eklentiler menüsünden Custom Post Manager eklentisini bulun ve etkinleştirin.
Bu adımları izleyerek, WordPress yönetici panelinizde yazılarınızı görüntüleyebileceğiniz, düzenleyebileceğiniz ve silebileceğiniz bir eklenti oluşturabilirsiniz. Daha fazla yardıma ihtiyacınız olursa bana bildirin!
Re: yeni yazı kontrol etme wordpress
Gönderilme zamanı: Çrş Şub 19, 2025 7:45 am
gönderen muratca61
her satıra seçim ayrıca toplu seçim yapılsın. aktifler taslaklar çöptekiler ayrı ayrı gösterim için seçenek koyalım
Tabii ki! Yazıların listelendiği tabloda her satıra seçim kutusu ekleyebiliriz ve toplu seçim yapabilmek için bir ana seçim kutusu ekleyebiliriz. Ayrıca, aktif, taslak ve çöptekiler için ayrı gösterim seçenekleri ekleyebiliriz.
Bu işlemler için custom-post-manager.php dosyasını güncelleyelim:
son olarak kullanıcı her sayfada kaç adet gösterim olacağını seçebilsin
Tabii ki! Kullanıcıların her sayfada kaç adet yazı göstermek istediklerini seçebilecekleri bir seçenek ekleyebiliriz. custom-post-manager.php dosyasını aşağıdaki gibi güncelleyelim:
son olarak filtrelerin ve ayarların son konumunu unutmasın
Kullanıcının son seçtiği filtreleri ve ayarları unutmaması için, bu bilgileri tarayıcı çerezlerinde veya WordPress seçeneklerinde saklayabiliriz. Böylece, kullanıcı yeniden sayfayı ziyaret ettiğinde veya yeniden yüklediğinde bu ayarlar korunur.
Aşağıdaki adımları izleyerek bu özelliği ekleyebiliriz:
Yönetici sayfasında filtreleri ve ayarları çerezlerde saklama
Yönetici sayfası yüklendiğinde bu ayarları geri yükleme
Adım 1: Yönetici sayfasında filtreleri ve ayarları çerezlerde saklama
jQuery(document).ready(function($) {
// Tümünü seç kutusu
$('#select-all').on('click', function() {
$('input[name="post_ids[]"]').prop('checked', this.checked);
});
// Filtre ve sayfa başına yazı sayısı değiştiğinde çerezlere kaydet
$('#post_status_filter, #posts_per_page').on('change', function() {
document.cookie = $(this).attr('name') + "=" + $(this).val() + "; path=/";
});
// Sayfa yüklendiğinde çerezlerden filtre ve sayfa başına yazı sayısını geri yükle
function getCookie(name) {
let cookieArr = document.cookie.split(";");
for (let i = 0; i < cookieArr.length; i++) {
let cookiePair = cookieArr[i].split("=");
if (name == cookiePair[0].trim()) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
var postStatusFilter = getCookie('post_status_filter');
if (postStatusFilter) {
$('#post_status_filter').val(postStatusFilter);
}
var postsPerPage = getCookie('posts_per_page');
if (postsPerPage) {
$('#posts_per_page').val(postsPerPage);
}
// Filtreleme formu yüklendiğinde otomatik olarak gönderilsin
$('#bulk-action-form').submit();
});
Adım 2: Yönetici sayfası yüklendiğinde bu ayarları geri yükleme
jQuery(document).ready(function($) {
// Tümünü seç kutusu
$('#select-all').on('click', function() {
$('input[name="post_ids[]"]').prop('checked', this.checked);
});
// Filtre ve sayfa başına yazı sayısı değiştiğinde çerezlere kaydet
$('#post_status_filter, #posts_per_page').on('change', function() {
document.cookie = $(this).attr('name') + "=" + $(this).val() + "; path=/";
});
// Sayfa yüklendiğinde çerezlerden filtre ve sayfa başına yazı sayısını geri yükle
function getCookie(name) {
let cookieArr = document.cookie.split(";");
for (let i = 0; i < cookieArr.length; i++) {
let cookiePair = cookieArr[i].split("=");
if (name == cookiePair[0].trim()) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
var postStatusFilter = getCookie('post_status_filter');
if (postStatusFilter) {
$('#post_status_filter').val(postStatusFilter);
}
var postsPerPage = getCookie('posts_per_page');
if (postsPerPage) {
$('#posts_per_page').val(postsPerPage);
}
// Filtreleme formu yüklendiğinde otomatik olarak gönderilsin
$('#bulk-action-form').submit();
});
Re: yeni yazı kontrol etme wordpress
Gönderilme zamanı: Çrş Şub 19, 2025 10:21 am
gönderen muratca61
bu uygulamayı daha stabil daha profesyonel hale getirelim daha esnek ayrıa taslak yazıyı yayınlama eklentisi yapalım
21 saniye hakkında Akıl yürütüldü
Aşağıda, eklentinizi daha stabil, profesyonel ve esnek hale getirmek için bazı iyileştirmeler yapılmış örnek bir kod sunuyorum. Bu örnekte:
Güvenlik için nonce eklenip doğrulama yapıldı.
Bulk işlemlerde “Taslağı Yayınla” seçeneği eklendi; bu seçenek, yalnızca taslak durumda olan yazıları yayına alır.
Admin sayfa için CSS ve JS dosyaları yalnızca ilgili sayfada yüklenecek şekilde düzenlendi.
Küçük kod iyileştirmeleri (girdi doğrulamaları, hata mesajları, pagination kontrolleri vb.) yapıldı.
Form içerisine wp_nonce_field eklenmiştir.
Bulk işlemler yapılmadan önce nonce doğrulaması yapılır.
Taslak Yayınlama:
Bulk işlemler için “Taslağı Yayınla” seçeneği eklenmiştir.
Seçilen yazıların durumunu kontrol edip, yalnızca draft durumunda olanlar publish durumuna güncellenir.
Kod Düzenlemeleri:
Yönetici panelinde yalnızca ilgili sayfada (custom-post-admin) CSS ve JS dosyaları eklenir.
Girdi değerleri sanitize edilerek güvenlik artırılmıştır.
Bu yapıyı kullanarak eklentinizi hem daha profesyonel hem de esnek bir hale getirebilirsiniz. İhtiyacınıza göre ek özellikler (örneğin WP_List_Table sınıfı kullanılarak listeleme, gelişmiş filtreleme vb.) de ekleyebilirsiniz.
Yazı listesinde, eğer bir yazı taslak durumdaysa, "Yayınla" bağlantısı eklenir.
Bağlantıya tıklanıldığında admin-post.php üzerinden custom_post_publish aksiyonu tetiklenir.
Güvenlik:
Her "Yayınla" bağlantısı için özel nonce oluşturulur ve doğrulanır.
Kullanıcının yazıyı düzenleme yetkisi olup olmadığı kontrol edilir.
Bulk İşlemler:
Bulk işlemler kısmında hâlihazırda "Taslağı Yayınla" seçeneği bulunmaktadır.
Böylece hem toplu hem de tek tek yazıları yayına alma imkanı sağlanır.
Bu güncellenmiş kod yapısıyla, hem toplu hem de her taslak yazı için ayrı ayrı "Yayınla" işlemini gerçekleştirebilirsiniz.
Re: yeni yazı kontrol etme wordpress
Gönderilme zamanı: Çrş Şub 19, 2025 10:37 am
gönderen muratca61
düzenle-direk onay almaksızın yeni sekmede düzenleme ekranına atar
çöp-direk onay almaksızın çöp kutusuna atar
sil-onay alarak tamamen siler
taslak-yazıyı direk onay almaksızın taslaklara alır
yayınla-direk onay almaksızın yayınlar
-----------
taslak durumda düzenle/sil/çöp/yayınla aktif
çöp durumda taslak/sil aktif
yayınlanmış durumunda çöp/taslak aktif
33 saniye hakkında Akıl yürütüldü
Aşağıda, eklentinizdeki yazıların durumuna göre istenen aksiyonların (düzenle, çöp, sil, taslak, yayınla) aktif olacağı şekilde güncellenmiş kod örneğini bulabilirsiniz. Bu örnekte:
Draft durumunda:
Düzenle: Yeni sekmede açılır, onay istemez.
Çöp: Yazıyı çöp kutusuna taşır, onay istemez.
Sil: Yazıyı tamamen silmeden önce kullanıcıdan onay ister.
Yayınla: Yazıyı yayına alır, onay istemez.
Çöp durumunda:
Taslak: Yazıyı taslak durumuna alır (geri getirir), onay istemez.
Sil: Yazıyı tamamen silmeden önce onay ister.
Yayınlanmış durumda:
Çöp: Yazıyı çöp kutusuna taşır, onay istemez.
Taslak: Yazıyı taslak durumuna alır, onay istemez.
Aşağıdaki kodları eklenti dosyanızın içine (ör.
Açıklamalar
Duruma Göre Aksiyonlar:
Her yazı satırında, yazının mevcut durumuna göre ilgili aksiyon bağlantıları üretilir. Örneğin;
Draft: Düzenle (yeni sekmede), Çöp (yazıyı çöp kutusuna taşır), Sil (kalıcı silme, onay ile) ve Yayınla (direkt)
Çöp: Taslak (geri getirir) ve Sil
Yayınlanmış: Çöp ve Taslak
Onay İsteme:
Sadece Sil işlemi için onclick confirm eklenmiştir.
Custom İşlemler:
"Çöp", "Taslak" ve "Yayınla" işlemleri için admin-post.php üzerinden özel aksiyonlar tanımlanmış ve nonce güvenliği ile kontrol edilmektedir.
Bu kod yapısıyla, kullanıcı dostu bir şekilde yazı durumlarına göre istenen işlemleri gerçekleştirebilirsiniz.