Tüm mesajları RSS olarak al


10

Wordpress ayarlarında tanımlanan en son X gönderilerinden daha fazlasına nasıl erişip erişemediğimi merak ediyorum. Tüm blog içeriğini RSS yoluyla geçiren eklentiler gördüm, yöntemlerini görmek için etrafta dolaşmadım.

Temelde birkaç yüz WordPress blogunu yönetiyorum ve müşterilerim için bir bülten oluşturucu oluşturuyorum. Birkaç gönderi seçebilmek ve alıntıların bülten gövdesinde görünmesini istiyorlar. Siteler birden fazla sunucuya yayılmıştır ve bülten oluşturucu CRM'imizin üzerine kurulmaktadır, bu nedenle doğrudan veritabanı sorguları zor olacaktır. RSS en temiz olurdu, ama bir seferde 10'dan fazla erişmek için nasıl (yönetici 10 olarak ayarlandığında) anlayamıyorum.

Herhangi bir fikir?


"Yönetici 10'da ayarlandı" ile ne demek istiyorsun?
gcb

Yanıtlar:


5

Kodeks, post_limitsfeed için admin'de ayarlanan tutarı geçersiz kılmak için filtrenin nasıl kullanılacağına ilişkin örnek snippet'e sahiptir .

if (isset ($query->query_vars['feed']) and ($query->query_vars['feed'] == 'ics')) 
    add_filter('post_limits','__return_empty_string'); 

http://codex.wordpress.org/Function_Reference/query_posts#Usage_Tips


1
Bu bir seçenek olabilir, ancak 700'den fazla sitede tema kodunu değiştirmek zorunda kalmayı ummuyordum.
bhamrick

1
Sonuçta bunu yaptım. Sitelerim bir avuç WordPress-Mu yüklemesine yayılmıştır, bu yüzden yüzlerce sunucuda tam anlamıyla yüzlerce farklı WordPress örneği değildir. Sorun ben her Mu yükleme içindeki sitelerin sadece BAZI bu işlevselliğe ihtiyaç vardı. Bu yüzden bunu yapan bir eklenti yazdım, ihtiyacım olan sitelerde bu eklentiyi etkinleştirmek için veritabanını güncelleyen bir komut dosyası yazdım. Bitti. Yardım için teşekkürler.
bhamrick

22

Mesajlarınızı almanın bir yolu, haber bülteni oluşturucunuzdaki rss özet akışının farklı sayfalarını aramaktır. Çeşitli Wordpress kurulumlarınızı güncellemenizi gerektirmeyen güvenli bir yaklaşımdır:

yourwebsite.com/feed -> son 10 gönderiyi al

yourwebsite.com/feed/ ? paged = 2 -> sonraki 10 gönderiyi al

Ve bunun gibi.


4

Ne yazık ki, yapmaya çalıştığınız şey çoğu toplumda genellikle kaşlarını çattı. Ne istediğini duyuyorum:

  • Varsayılan sayıdan (son gönderiler) daha fazlasını uzaktan almanın bir yolu
  • Bir site için yayınlanmış tüm yayınları almanız mümkündür
  • Sitenin kendisi ile herhangi bir doğrudan etkileşime girmeden (RSS kullanarak)

Bu, bloglardaki içeriği kazımak ve orijinal yazarın izni olmadan yeniden yayınlamak için yaygın olarak kullanılan bir uygulamadır. Bu yüzden genellikle kaşlarını çattığını söylüyorum. Çoğu blog yazarı, harika içerik geliştirmeye çok fazla zaman ve enerji koyar, bu nedenle üçüncü bir tarafın kendi sitelerine SEO kredisi eklemek için sıkı çalışmalarından yararlanmasını kolaylaştırır ... iyi ... şık.

Bununla birlikte, şu an 700'den fazla siteden içerik kazıma için meşru nedenleriniz olduğunu varsayacağım. Bu durumda, RSS değil, ayrı, programlı bir yöntem öneririm. Bu sitelerin tümü için meşru giriş bilgileriniz varsa (yani, sitelerinizdir ve başkasının değil), içeriği getirmek için WordPress yerleşik XML-RPC özelliklerini kullanabilirsiniz.

metaWeblog.getRecentPostsBlogun kimliğini (genellikle tek siteler için 0, ancak birden çok sitede farklı olabilir), WordPress kullanıcı adınızı, WordPress şifrenizi ve yayın sayısını belirtme isteğini iletmek için yerleşik XML-RPC kitaplığını kullanın getirmek için (hepsini almak için bunu -1 olarak ayarlayın).

Diğer site, istediğiniz içerikle yapabileceğiniz içeriği içeren (oldukça büyük) bir XML dosyasıyla yanıt verecektir. Tüm bunlar perde arkasında gerçekleşebilir ve metaWeblog.getRecentPostsistek bir RSS akışından (sizin için önemli olabilecek özel alanlar dahil) çok daha fazla bilgi verir.


2

Bellek sunuluyorsa, yazı sayısı olarak -1 iletmek aynı etkiye sahiptir. Yine de bir URL'ye nasıl atılacağından tam olarak emin değilim.

Bir kenara, gerçekten 700'den fazla siteye sahipseniz, günlük olarak özel bir depodan, günlük olarak özel bir depodan güncellemeler veya git çeken bir cron almayı düşünün ... wp- admin / upgrade.php. Sitelerinizi yeni sürüme geçirirken veya değiştirirken size çok fazla zorluk kazandıracak - böylece otomatik olarak yapılacak.



0

Ayarlar> Okuma> seçeneğine giderseniz ve "Sendikasyon yayınları en yeni olanı gösterir" değerini size uygun bir sayı olarak değiştirirseniz, girdiğiniz yayınların sayısı gösterilir.


0

"Tüm gönderiler" olmasa da, bir limitparametrenin çok daha yararlı olduğunu savunuyorum .

Doğrudan "posts_per_rss" seçeneği gibi filtreleme öneriyoruz:

add_filter( 'option_posts_per_rss', 'my_posts_per_rss' );
function my_posts_per_rss( $option ) {
    if( isset( $_GET['limit'] ) ) {
        return (int) $_GET['limit'] ?: $option;
    }
    return $option;
}

Daha sonra feed'e şu şekilde erişilebilir: http://example.org/category/acme/feed/?limit=999

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.