WordPress 3.1'de yazı biçimine göre nasıl sorgulayabilirim


10

Ben 'alıntı' bir yazı biçimi ile tüm yayınları sorgulamak çalışıyorum. Yazı biçimlerini işlevlerime ekledim. Php ile

add_theme_support( 'post-formats', array( 'image', 'video', 'gallery', 'quote' ) );

Yönetici yazı için biçim olarak 'alıntı' seçtim. Taxonomy_Parameters altındaki son örnek , 'alıntı' biçimine sahip yayınların nasıl görüntüleneceğini gösterir, ancak temamda çalıştırdığımda hiçbir yayın döndürülmez. İşte kod:

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post-format',
      'field' => 'slug',
      'terms' => 'post-format-quote'
    )
  )
);
query_posts( $args );

Tüm yayınları ve yerleri sorguladığımda

echo get_post_format();

döngüde ön uçtaki 'alıntı' kelimesini döndürür. Ayrıca, ben var_dump () sorgu ben yazı biçimi hakkında dizide bir şey görmüyorum.

Yazı biçimine göre sorgulamanın mümkün olup olmadığını bilen var mı? Öyleyse nasıl?

DÜZENLEME - Bainternet'in cevabı altındaki 5 yoruma bakın: Bu, format tipi tırnak işaretleri döndürmeye çalışan yeni bir yüklemenin yirmi temasının index.php dosyasında bulunan koddur. 'Alıntı' yerine 'hayır' döndürür. Değiştirmem gereken bir şey görebiliyor musun.

get_header(); ?>
<div id="container">
  <div id="content" role="main">
    <?php $args = array(
      'tax_query' => array(
        array(
          'taxonomy' => 'post-format',
          'field' => 'slug',
          'terms' => array('quote')
        )
      )
    );
    query_posts( $args );
    if ( have_posts() ) : while ( have_posts() ) : the_post();
      echo get_post_format();
    endwhile; else:
      echo 'no';
    endif;
    wp_reset_query();      
    ?>
  </div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

DÜZENLEME 2 - Görünüşe göre WordPress Kodeksi değişti ve Sınıflandırma Parametreleri bölümü yalnızca Google önbelleğinde bulundu.

DÜZENLEME 3 - NİHAİ ÇALIŞMA KODU

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post_format',
      'field' => 'slug',
      'terms' => 'post-format-quote'
    )
  )
);
query_posts( $args );

İlk düzenlemeden yirmi on düzenleme ...

get_header(); ?>
<div id="container">
  <div id="content" role="main">
    <?php $args = array(
      'tax_query' => array(
        array(
          'taxonomy' => 'post_format',
          'field'    => 'slug',
          'terms'    => 'post-format-quote'
        )
      )
    );
    query_posts( $args );
    if ( have_posts() ) : while ( have_posts() ) : the_post();
      the_title();
      echo get_post_format();
      echo '<br />';
    endwhile; else:
      echo 'no';
    endif;
    wp_reset_query();      
    ?>
  </div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Yanıtlar:


7

Bu kod yanlış! Var

'taxonomy' => 'post-format'

Ama gerçekten olması gerekiyor:

'taxonomy' => 'post_format'

Alt çizgi olmadan, sorgu geçersiz olur. Saçlarımı saatlerce çıkardıktan sonra WordPress 3.1 kurulumumda test ettim.

Umarım yardımcı olur!!


Bunu yakaladığınız için çok teşekkür ederim. Orijinal kodu doğrudan Codex sayfasından kopyaladığımı yemin edebilirim. (Belki bir seferde orada da yanlıştı.) Şimdi çalışıyor. Bunu post_format olarak değiştirmenin yanı sıra 'terms' => 'quote' kelimesini 'terms' => 'post-format-quote' olarak değiştirmem gerekiyordu. İlgilenen herkes için lütfen son kod için orijinal yayının 3'ünü düzenleyin.
PNMG

Tabii, yardım edebildiğim için mutluyum. :)
Jared White

2

içinde tax_querysen koymak gerekir böylece "terimleri" dizisi kabul post-format-quoteböyle bir dizide:

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post-format',
      'field' => 'slug',
      'terms' => array('post-format-quote')
    )
  )
);
query_posts( $args );

Herkes bunu denedi ve işe aldı. Dizi bölümünü ekledim ve hala bir şey döndürmedi. Post-format-quote diziye koymak için doğru bilgi mi?
PNMG

hayır onun değil post formatı "alıntı" gibi değil, post-format-alıntı gibi koymak gerekir
Bainternet

Ben add_theme_support fonksiyonunda yukarı olarak tanımlanmış teklif var ne olduğundan 'terms' => dizi ('quote') koymak gerekir demek? Ben de denedim. Hala şans yok.
PNMG

iyi 'terms' => dizi ('quote') bana çalışıyor, yazı biçimini 'echo get_post_format (); ve ne elde ettiğinizi görün
Bainternet

Tamam, yankılandığımda 'alıntı' alıyorum. Bir çaresizlik anında tüm eklentileri kapattım ve varsayılan yirmi temaya geri döndüm ve biri alıntı biçiminde olmak üzere 3 test yazısı oluşturdum. Add_theme_support çağrısına teklif eklemek için function.php dosyasını güncelledim ve aşağıdaki kodu kullanmak için index.php'yi güncelledim: [orijinal yayının altındaki düzenlemeye bakın]
PNMG
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.