Mesajları admin'de kimliğe göre ara


10

Ben, özellikle özel yazı türleri desteği ile, ID tarafından mesajlar aramak için bir yol arıyorum. Bu işlevselliği sağlayan bir eklenti olmasını umuyordum, ama hiçbir şey bulamadım. Herhangi bir fikir çok takdir edilecektir, teşekkür ederim.


Kimliğe göre arama yapmak istediğinizi açıklayabilir misiniz, her gönderinin benzersiz bir kimliği vardır, bu arama muhtemelen tek bir sonuçtan daha fazlasını nasıl sağlayabilir?
t31os

@ t31os İstediğim tek sonuç :). Yönetici arka ucunda kimliğe göre mesajlar alabilmeyi kastediyorum. Domain.com/wp-admin/edit.php adresine giderseniz üstte bir arama alanınız vardır ve yazı başlıklarında arama yaparak bir yayını kolayca bulabilirsiniz. Aynı şeyi yapabilmem gerekiyor ama kimlikleri kullanıyorum. Deyin, '1343' girin, 'ara' tuşuna basın, 1343 numaralı postayı alın.
pereyra

kullanıcı arabirimi araması için nasıl çalışır?
chrispo

Yanıtlar:


13

Kimliğe göre neden sorgulamak istediğinizi anladığımdan emin değilim, ancak hacky bir şekilde mümkün olduğunu söyledi (basit olduğu için bu yöntemi seviyorum).

add_action( 'parse_request', 'idsearch' );
function idsearch( $wp ) {
    global $pagenow;

    // If it's not the post listing return
    if( 'edit.php' != $pagenow )
        return;

    // If it's not a search return
    if( !isset( $wp->query_vars['s'] ) )
        return;

    // If it's a search but there's no prefix, return
    if( '#' != substr( $wp->query_vars['s'], 0, 1 ) )
        return;

    // Validate the numeric value
    $id = absint( substr( $wp->query_vars['s'], 1 ) );
    if( !$id )
        return; // Return if no ID, absint returns 0 for invalid values

    // If we reach here, all criteria is fulfilled, unset search and select by ID instead
    unset( $wp->query_vars['s'] );
    $wp->query_vars['p'] = $id;
}

Daha sonra tek yapmanız gereken, #sayısal kimliğin önündeki (karma) önekini kullanarak normal arama kutusunu kullanarak arama yapmaktır .

#123

.. postayı 123 kimliğiyle döndürür.

Bunu yapmak için alınabilecek daha karmaşık yollar olduğuna eminim, ancak bir karma ile başlayan başlıklara sahip çok fazla mesajınız yoksa, bu yaklaşımla ilgili herhangi bir sorun görmüyorum (ancak her zaman hash'i değiştirebilirsiniz) başka bir karakter).

Umarım yardımcı olur. :)


@ t310s bu işe yarıyor, çok teşekkür ederim! elde ettiğim tek (tamamen kozmetik olsa da) sorun, arama sonuçlarının en üstünde elde ettiğim şey: “” için arama sonuçları - “# 123” için arama sonuçları ideal olur. Aksi takdirde tam da ihtiyacım olan şey bu, tekrar teşekkürler.
pereyra

Bu, sorgudan hemen önce arama terimlerini ayarlamanın talihsiz bir yan etkisi, ancak şimdi edit.php'ye başka bir göz attım ... kolay bir düzeltme görebiliyorum ... :) unset()Aşağıdaki çağrıyı güncelleyin .. unset( $wp->query_vars['s'], $_GET['s'] );ve arama terim metin kimlik arama yaparken kaybolacak .. ps yardım etmekten mutluluk duyuyoruz .. :)
t31os

Günün çok geç saatlerinde geldim ama bu yazıya rastladım ve ... için arama sonuçlarını yeniden get_search_queryfiltrelemek mümkün. add_filter( 'get_search_query', function() { return $_GET['s']; } );
Mike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.