Ana İçeriğe Geç

doğru WordPress WP_Query nasıl kullanılır

Divi: Kullanılacak en kolay WordPress teması

Divi: Tüm zamanların en iyi WordPress teması!

daha fazla 600.000 indirmeler, Divi, dünyanın en popüler WordPress teması. Tamamen, kullanımı kolay ve 62 ücretsiz şablonlardan daha fazlasını sunuyor. [Önerilen]

WP_Query sınıfının büyük bir hayranıyım: Verileri kişisel bir şekilde almak ve görüntülemek için birkaç istemci web sitesinde kullanıyorum.

Bir sayfada birden fazla döngü kullanmak istiyorsanız, bunu yapmanın en iyi yolu, her döngüde "WP_Query" komutunu çalıştırmaktır.

Ancak bir dezavantajı var: WordPress ne zaman bir döngü çalıştırsa, veritabanına sorgular gönderir ve bu işlem daha uzun sürer ve web sitenizi yavaşlatabilir.

Bu eğiticide, bir sorgunun birden fazla döngü için nasıl kullanılacağını göstereceğim. Bunu ana sorgu ile yapabilir veya WP_Query ile aynı tekniği kullanabilirsiniz.

3 yönlerini keşfedeceğiz:

  • Bir alt tema ve bir şablon dosyası oluşturun.
  • Döngü içeriği için bir şablon parçası oluşturun.
  • Döngülerimizi yaratın.

Ama birlikte keşfetmeden önce Bir WordPress blog 7 adımlarını nasıl yüklenir et Nasıl bulmak yüklemek ve blogunuzda bir WordPress tema etkinleştirmek için

O zaman neden burada olduğumuza dönelim.

Ne gerek

Bu öğretici takip edebilmek için, ihtiyacınız olacaktır:

  • Geliştirme için bir WordPress kurulumundan (yerel olarak).
  • Bir kod editörü.
  • Web sitenizde, birden fazla kategori atanmış makaleler
  • WordPress'in yirmi on altı teması
  • Yirmi on altı çocuk teması kuruldu ve etkinleştirildi

Bu teknik aynı zamanda sizin durumunuza ve WordPress temanıza uyar.

Alt tema oluşturma

İlk önce yirmi on altı çocuk temasını yaratacağız. Bunu yapıyorum çünkü ana temayı değiştirmek istemiyorum.

keşfedin Bir WordPress alt tema nasıl yüklenir

"Wp-content / themes" klasörünüzde "tutor-theme" olarak adlandıracağınız yeni bir boş klasör oluşturun. Daha sonra size uygun ismi seçebilirsiniz.

Bu klasörde style.css adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:

/*

Tema Adı: Tuto Tema

Tema URI'sı: https://blogpascher.com

Açıklama: Tema desteği, veritabanını yalnızca bir kez sorgularken birden fazla döngü çalıştırma hakkında öğretici. Yirmi Onaltı tema için çocuk teması.

Yazar: Hervé

Yazar URI: https://blogpascher.com

Şablon: twentysixteen

Sürüm: 1.0

*/

@imort URL ("../twentysixteen/style.css");

Şimdi bu dosyayı kaydedin ve yeni WordPress temanızı etkinleştirin.

Bir sonraki adım, kategoriler için bir şablon dosyası oluşturmaktır, üzerinde çalışacağız.

"Yirmi Onaltı" WordPress temasından "archive.php" dosyasının bir kopyasını alın. Kımıldatmayın, bir kopyasını alın. "Category.php" olarak yeniden adlandırın.

Daha ileri gitmek için, keşfetmek dosya ve klasörleri WordPress nasıl yönetilir

Bu, şimdi web sitenizin kategorileri için şablon dosyası olacaktır.

Yeni bir şablon dosyası oluşturma

İlk adım, temamızda "yirmi on altı" döngünün değiştirilmiş bir versiyonunu içerecek yeni bir şablon dosyası oluşturmaktır.

Ayrıca birlikte danışalım WordPress web sitenizi Bakım moduna alma

Alt tema klasöründe, "include" adlı bir alt klasör oluşturun. Ve içinde "loop-category.php" adında yeni bir dosya oluşturun.

Daha sonra, ana tema klasörlerinden (yirmi on altı) "template-parts / content.php" dosyasını açın ve aşağıdaki kodu bulun:

<article id = "post - <? php the_ID (); ?> "<? Php post_class (); ? >>

<header class = "entry-header">

<? php if (is_sticky () && is_home () &&! is_paged ()):?>

<span class = "sticky-post"> <? php _e ('Öne çıkan', 'twentysixteen'); ?> </ Span>

<? php endif; ?>

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

</ başlık> <! - .entry-başlık ->

<? php twentysixteen_excerpt (); ?>

<? php twentysixteen_post_thumbnail (); ?>

<div class = "entry-content">

<? PHP

/ * çevirmenler:% s: Geçerli gönderinin adı * /

the_content (sprintf (

__ ('<span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen') okumaya devam edin,

get_the_title ()

));

wp_link_pages (dizi (

'önce' => '<div class = "sayfa bağlantıları"> <span class = "sayfa bağlantıları-başlığı">'. __ ('Sayfalar:', 'twentysixteen'). </ Span>',

'sonra' => '</ div>'

'link_before' => '<span>',

'link_after' => '</ span>',

En iyi WordPress temalarını ve eklentilerini mi arıyorsunuz?

Envato'daki en iyi eklentileri ve WordPress temalarını indirin ve web sitenizi kolayca oluşturun. 49.720.000 indirme işleminden daha fazla. [ÖZEL]

'pagelink' => '<span class = "ekran okuyucu metni">'. __ ('Sayfa', 'twentysixteen'). '</ span>%',

'separator' => '<span class = "ekran okuyucu metni">, </ span>',

));

?>

</ div> <! - .entry-content ->

<footer class = "entry-footer">

<? php twentysixteen_entry_meta (); ?>

<? PHP

edit_post_link (

sprintf (

/ * çevirmenler:% s: Geçerli gönderinin adı * /

__ ('Edit <span class = "ekran okuyucu metni"> "% s" </ span>', 'twentysixteen'),

get_the_title ()

),

'<span class = "edit-link">',

</ Span> '

);

?>

</ altbilgi> <! - .entry-altbilgi ->

</ article> <! - #post - ## ->

Bu kodu, alt temanın yeni "loop-category.php" dosyasına kopyalayın.

Şablon parçası dosyasını düzenleme

"Yirmi on altı" döngüsünde ihtiyacım olandan daha fazlasını gösteriyor, bu yüzden bu kodu değiştireceğim. Sadece içeriği değil, pasajı göstermek istiyorum, bu yüzden içeriği sileceğiz.

H1 ve bir WordPress makalesinin SEO başlığı arasındaki fark nedir? Bu makaleye danışarak öğrenin.

Yeni loop-category.php dosyanızda bu kodu bulun ve silin:

<div class = "entry-content">

<? PHP

/ * çevirmenler:% s: Geçerli gönderinin adı * /

the_content (sprintf (

__ ('<span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen') okumaya devam edin,

get_the_title ()

));

wp_link_pages (dizi (

'önce' => '<div class = "sayfa bağlantıları"> <span class = "sayfa bağlantıları-başlığı">'. __ ('Sayfalar:', 'twentysixteen'). </ Span>',

'sonra' => '</ div>'

'link_before' => '<span>',

'link_after' => '</ span>',

'pagelink' => '<span class = "ekran okuyucu metni">'. __ ('Sayfa', 'twentysixteen'). '</ span>%',

'separator' => '<span class = "ekran okuyucu metni">, </ span>',

));

?>

</ div> <! - .entry-content ->

Diğer adım, "twenty_sixteen_excerpt ()" işlevini "the_excerpt ()" işleviyle değiştirmektir, çünkü yirmi on altı sürüm tam makaleye bir bağlantı sağlamaz.

Ayrıca bakınız Belirli bir kategoride yeni yayınlanmış makaleleri nasıl görüntülenir

Bu satırı bulun:

? <PHP twenty_sixteen_excerpt (); ?>

Şununla değiştirin:

? <PHP the_excerpt (); ?>

Ayrıca başlık etiketlerinde bazı değişiklikler yapmamız gerekiyor.

Model bölümünde çizgiyi değiştirin:

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

H2 için H3 etiketlerini düzenleyin:

<? php the_title (sprintf ('<h3 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h3 > '); ?>

Modelinizi kaydedin. Ardından category.php dosyasına geri dönelim.

Döngüler oluşturma

Öncelikle "yirmi on altı" kodunun dahil edilmesini "file.php" dosyamızdan kaldıracağız çünkü yeni dosyayı kullanmamız gerekecek.

Category.php dosyanızda bu kodu bulun:

get_template_part ('template-parts / content', get_post_format ());

Ve silin.

Sonra döngüleri yaratacağız.

Bu örnekte, "has_tag ()" koşullu etiketini kullanarak, "content" etiketli tüm makaleleri göstereceğim. Bu, üç döngüyü geçmem gerekeceği anlamına geliyor:

  • Sorgunun bu etiketi içeren öğeler yayınlayıp yayınlamadığı ilk kontrol.
  • Öyleyse, ikincisi bu etiketi taşıyan makaleleri görüntüler.
  • Üçüncüsü bu etiketi olmayan makaleleri görüntüler.

Elementor ile web sitenizi kolayca oluşturun

Elementor, profesyonel bir görünüme sahip herhangi bir web sitesi tasarımını kolayca oluşturmanıza olanak sağlar. Kendin yapabileceğin için pahalı ödemeyi kes. [Ücretsiz]

Her döngü arasında, sorguyu sıfırlamadan mesajları geri sarmak için rewind_posts () kullanacağım: her zaman her zaman ana sorguyla çalışıyoruz.

İlk döngü: Makalelerin doğrulanması

"Category.php" dosyanızda döngünün başlangıcını bulun:

ise (have_posts ()): the_post ();

Bu satırın üstünde, $ count adlı yeni bir değişken tanımlayın:

$ = 0 Sayısı;

Ardından, bu döngünün içine şu kodu ekleyin:

// »etiketli yayın olup olmadığını kontrol edin

$ tag = 'içerik';

if (has_tag ($ tag)) {

$ count + = 1;

}

Bu kod, mesajların "içerik" etiketine sahip olup olmadığını kontrol eder ve ardından evet ise sayaca 1 ekler.

Döngünün içi buna benzer olacaktır:

// İlk döngüdeki gönderileri kontrol et.

$ = 0 Sayısı;

ise (have_posts ()): the_post ();

// »etiketli yayın olup olmadığını kontrol edin

$ tag = 'içerik';

if (has_tag ($ tag)) {

$ count + = 1;

}

endwhile;

İkinci döngü: Etiketi olan makaleleri geri yükle

Bir sonraki adım, bu etiketi içeren öğeleri görüntülemek için döngü oluşturmak, yalnızca varsa.

Örneğin, $ count değeri 0 değerinden büyükse.

Çok keşfetmek bir müşteri için WordPress panosunu nasıl özelleştirilir?

Bu koşulu döngüye ekleyin:

if ($ count> 0) {

rewind_posts ();

echo '<h2>' ile etiketlenmiş yazılar '. $ tag. </ H2> ';

ise (have_posts ()): the_post ();

if (has_tag ($ tag)) {

get_template_part ('içerir / döngü', 'kategori');

}

// Döngüyü sonlandır.

endwhile;

}

Bu kod $ sayımın sıfırdan büyük olduğunu doğrular ve öyleyse öğeleri geri sarar ve tekrar döngüyü çalıştırır. Her öğe için etiketimizin sahibi olup olmadığını kontrol eder ve öyleyse yeni oluşturduğumuz şablonun bir bölümünü çağırır.

Üçüncü döngü: Makalelerin geri kalanını görüntüleyin

Çıkış, kalan öğeler üzerinde son bir döngü olacaktır. Bu kategoride "content" etiketli bir makale bulunmuyorsa, kategorideki tüm öğeleri gösterecektir.

Yanı sıra öğrenmek Çok yazar blog oluşturun ve okuyucuların blogunuza yazı göndermek için izin nasıl

İkinci döngünüzde şunu ekleyin:

rewind_posts ();

// Second Loop - 'content' etiketiyle gönderilmemiş

ise (have_posts ()): the_post ();

if (! has_tag ($ tag)) {

get_template_part ('içerir / döngü', 'kategori');

}

// Döngüyü sonlandır.

endwhile; ?>

Bu son kod öğeleri geri sarar ve sonra tekrar döngüyü çalıştırır. Bu kez, bir makalede "içerik" etiketinin bulunup bulunmadığını kontrol eder, ardından içeriği "şablon bölümünde" görüntüler.

Çevrimiçi Mağazanızı kolayca oluşturun

WordPress'te fiziksel ve dijital ürünlerinizi satmak için ücretsiz WooCommerce, en iyi e-ticaret eklentilerini indirin. [Ücretsiz]

Ayrıca keşfetmenizi öneririz WordPress üzerinde bir baskı seçeneği makaleleri nasıl eklenir

Artık blogunuzun makaleler sayfasını test edebilirsiniz. Filtreleri değiştirebileceğinizi unutmayın. Bu derste "içerik" i etiket filtresi olarak kullandık, ancak seçiminizi kullanabilirsiniz.

Ayrıca bazı premium WordPress eklentilerini keşfedin

Modern bir görünüm kazandırmak ve blogunuzun veya web sitenizin rahatlığını artırmak için diğer WordPress eklentilerini kullanabilirsiniz.

Size, bu konuda yardımcı olacak bazı premium WordPress eklentileri sunuyoruz.

1. UserPro için Sosyal Duvar Eklentisi

UserPro, bir sosyal duvarla çok daha eğlenceli olabilir. Sosyal Duvarı'nın uzantısı budur. Social Wall eklentisi ile web sitenizde bir duvar oluşturabilir ve üyelerinize toplulukla etkileşimde bulunmak için canlandırıcı bir yol sunabilirsiniz.

WordPress Social Wall eklentisi, kullanıcılarınızın şunları yapmalarını sağlar: aralarında mesaj paylaşma, resim paylaşma, diğer kişilerin yayınlarına yorum yapma, kullanıcıların bir mesajı beğenme veya beğenmeme, sadece kullanıcılar için duvarı görüntülemeyi seçebilirler giriş yapan veya tüm kullanıcılar için giriş yapan kullanıcılar, yöneticiler kullanıcılardan gelen mesajları veya yorumları silebilir.

Indir | gösteri | Web hosting

2. Flipkart Affiliate Plus

Flipkart Affiliate Plus, WordPress web sitenizi Flipkart Affiliate API'sine bağlayan modüler bir WordPress eklentisidir.

Bu WordPress eklentisi, ürün verilerini Flipkart'tan almayı kolaylaştırır ve doğrudan web sitenize günceller. Flipkart Affiliate Plus, Flipkart'ın resmi API'si için ilk WordPress eklentisidir. Kullanarak, üçüncü taraf bir API kullanmanıza gerek kalmayacak. İşinden tamamen faydalanıyorsun.

Indir | gösteri | Web hosting

3. WooCommerce için Etkinleştirilebilir Google Analytics

Actionable Google Analytics, Universal Analytics’in en iyi özelliklerinden bazılarını kullanmanıza izin veren bir WordPress eklentisidir: Geliştirilmiş E-Ticaret ve Kullanıcı Kimliği İzleme. Ek olarak, bu eklenti IP adreslerinin isimsizleştirilmesini, ürünlerin geri ödenmesini, içeriğin gruplandırılmasını, formların izlenmesini vb. Destekler.

Bu WordPress eklentisini kullanarak, karmaşık Google Analytics kodunun entegrasyonunda zaman kazanacaksınız, böylece verilerinizi yönetmeye odaklanabilirsiniz.

Başlıca özellikleri: hızlı ve kolay kurulum, 9'in gelişmiş e-Ticaret raporlarına erişim, aynı kullanıcı tarafından farklı cihazların nasıl kullanıldığını ve satın alımların nasıl yapıldığını incelemek imkanı. Daha fazla geri ödenen ürünleri analiz etme, nihayetinde düzeltici önlem alma ve daha fazlasını yapma yeteneği.

Indir | gösteri | Web hosting

Diğer önerilen kaynaklar

Ayrıca, web sitenizi ve blogunuzu daha iyi ele geçirmek ve kontrol altına almak için sizi aşağıdaki kaynaklara başvurmaya davet ediyoruz.

Sonuç

İşte bu! Hepsi bu oldukça teknik eğitim için. Umarım WordPress'te WP_Query'i nasıl doğru kullanacağımız konusunda açık konuşmuşuzdur. Tereddüt etmeyin ipucunu sosyal ağlarda arkadaşlarınla ​​paylaş.

Bununla birlikte, ayrıca bize danışabilirsiniz kaynakların bulunduğuİnternet siteleri oluşturma projelerinizi yürütmek için daha fazla elemana ihtiyacınız varsa, WordPress blog oluşturma.

Ama bu arada, bize Yorumlar ve özel bölümdeki öneriler.

...

Bu makale yorumları 7 içeriyor
  1. ___________ ________ _____ ____________
    | Makale 1 | | arti 2 | | _A3_ | | |
    | __________ | | _______ | _____ | Makale 6 |
    ______________________ | 5 | | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Merhaba Blair
    Bu öğreticiler parfais için teşekkür ederim,
    Biraz yardım isteyin.
    Kendi tema wordpres'imi (html / css) oluşturuyorum ve geliştirmeye çalışacağım bir sorunum var: msn.com'a benzer bir site oluşturmayı planlıyorum sitem birkaç bölüme ayrılacak (bölümler) ) bunlar: haberler, eğlence, sağlık, yaşam tarzı ... vs. yani birinci madde grubunu, ikinci grubu, üçüncü grubu vb. gerçekleştirmek istediğimi söylemek istiyorum. ancak aynı sayfadaki tüm grupları göster ve her grup bir kategoriye (niş) ait. Acaba bu wordpress arka ofisi her bir konunun içeriğini ayrı ayrı yönetebiliyor mu? wordpress loop // Post Content ile özür dilerim, hiçbir mesaj bulunamadı! Bir parça karışımı alıyorum:
    Bu tür yaşam tarzı aittir bir makale ise bu, benim son makale yazma haber olan ilk kısmında doğrudan yerleştirilir yani.
    Bu sayfa boyunca geldi https://codex.wordpress.org/fr:La_Boucle Ben bölüm birden döngüler benim sorunu çözebilir düşünüyorum!
    Umarım ne söylemeye çalıştığımı anlıyorsundur

    Cevabınız için şimdiden teşekkür ederim,
    Saygılarımızla,

    1. Bonjour
      Ben hiçbir şey için işini zorlaştırmak düşünüyorum. Zaten benim anlamadığım sen kategoriler (kategori) içinde öğeleri düzenlemek istediğiniz ve her öğe göreli kategoriler olabilen bir niş, ait olabilir. Evet döngü bunu yardımcı olabilir ve bu etkileyici basitlik var.
      Cesaret!

      1. Bonjour.
        her şeyden önce hızlı yanıtınız için teşekkür ederim. Yeni oluşturduğum temanın artık wordpress ile uyumlu olmadığını ve sorunun nereden geldiğini düşünüyorum.
        yorumlarında senin ben çizim ile açıklayacağım ekli görüntüyü desteklemeyen yana yapılan:
        Burada kategorilerin bir sitedir
        ___________ ________ _____ ____________
        | Makale 1 | | arti 2 | | _A3_ | | | öyleyse her makalenin
        | __________ | | _______ | _____ | Makale 6 | bir döşeme ile temsil edilir; bu yüzden 6 var
        ______________________ | 5 | | | makaleler (her kutu görüntüyü içerir)
        | _________ 4 _________ | | ____ | | ___________ | ve belirli bir makalenin başlığı)

        Asıl sorunum Bay Blair, makalelerimi 1 döşemesinden 6 döşemesine taşıyabilmeleri için tamamlayamam, yani yeni bir makale eklerken Onu yayınladım. İkincisi, 1 makalesinin varolan tüm temalardaki yerini almasını istiyorum.
        - Bence her yazı (makale) konum, yükseklik, genişlik ... vb. Gibi kendi özelliklerine sahip olduğundan anlaşılmaz.
        elbette bu düşünceyle bu şema biraz belirsizdir, aksi takdirde sizi rahatsız etmiyorsam ve bana yardım etmek istiyorsanız, e-postam var (sadece adınızı içeren bir e-posta göndermeniz yeterlidir).

        senin yeniden düşünürken için tekrar teşekkür ederiz

        1. İyi akşamlar, bu özel durumda, "int" türünde değişkenlerle atlamanız gerekecek, bu nedenle, döngü döngüsü her zaman, değişkeni artırıp değişkenin değerine bağlı olarak, makalenin görüntülenmesi. Örneğin:

          if ($ i 1 ==) {
          // kodun burada
          } Else if ($ i == 2) {
          // böyle
          }
          $ I ++;

          Ne yazık ki, şu anda bizzat size yardımcı olamaz.

  3. [...] Ben WordPress üzerinde daha etkili WP_Query sorguları bunların nasıl kullanılacağını öğretecek Bu eğitimde. [...]

YORUM BIRAKIN

E-posta adresiniz gösterilmeyecektir. Doldurulması zorunlu alanlar * ile işaretlenmiştir *

Bu site, istenmeyenleri azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl kullanıldığı hakkında daha fazla bilgi edinin..

Başa dönüş
20 hisseleri
hisse18
cıvıltı2
Enregistrer