ฉันจะค้นหาตามรูปแบบการโพสต์ใน WordPress 3.1 ได้อย่างไร


10

ฉันพยายามค้นหาโพสต์ทั้งหมดด้วยรูปแบบโพสต์ของ 'อัญประกาศ' ฉันได้เพิ่มรูปแบบการโพสต์ในฟังก์ชั่นของฉันด้วย

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

ฉันเลือก 'อัญประกาศ' เป็นรูปแบบสำหรับโพสต์ในผู้ดูแลระบบ ตัวอย่างสุดท้ายภายใต้Taxonomy_Parametersแสดงวิธีแสดงโพสต์ที่มีรูปแบบ 'quote' แต่เมื่อฉันรันในธีมของฉันจะไม่มีการโพสต์กลับมา นี่คือรหัส:

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

เมื่อฉันเพียงแค่ค้นหาโพสต์และสถานที่ทั้งหมด

echo get_post_format();

ในลูปจะส่งคืนคำว่า 'quote' ในส่วนหน้า นอกจากนี้เมื่อฉัน var_dump () แบบสอบถามฉันไม่เห็นอะไรในอาร์เรย์เกี่ยวกับรูปแบบโพสต์

ไม่มีใครรู้ว่าเป็นไปได้ที่จะสอบถามตามรูปแบบการโพสต์? ถ้าเป็นเช่นนั้นได้อย่างไร

แก้ไข - ดู 5 ความคิดเห็นภายใต้คำตอบของ Bainternet: นี่คือรหัสที่พบใน index.php ของชุดรูปแบบที่ยี่สิบของการติดตั้งใหม่พยายามที่จะส่งกลับคำพูดประเภทรูปแบบ ฉันกลับมาที่ 'ไม่' แทนที่จะเป็น 'พูด' คุณเห็นอะไรที่ฉันควรเปลี่ยนไหม

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(); ?>

แก้ไข 2 - ดูเหมือนว่า WordPress Codex ตอนนี้มีการเปลี่ยนแปลงและส่วนที่เกี่ยวกับพารามิเตอร์ Taxonomy จะพบเฉพาะในแคช Google

แก้ไข 3 - รหัสการทำงานขั้นสุดท้าย

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

การแก้ไขยี่สิบยี่สิบครั้งจากการแก้ไขครั้งแรกจะเป็น ...

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(); ?>

คำตอบ:


7

รหัสนี้ไม่ถูกต้อง! คุณมี

'taxonomy' => 'post-format'

แต่มันจำเป็นต้องเป็น:

'taxonomy' => 'post_format'

หากไม่มีเครื่องหมายขีดล่างแบบสอบถามจะไม่ถูกต้อง ฉันเพิ่งทดสอบสิ่งนี้บน WordPress 3.1 ของฉันติดตั้งหลังจากดึงผมออกไปหลายชั่วโมง

หวังว่าจะช่วย !!


ขอบคุณมากสำหรับการติดตาม ฉันสาบานได้ว่าฉันได้คัดลอกรหัสต้นฉบับโดยตรงจากหน้า Codex (อาจจะผิดครั้งเดียวเช่นกัน) มันใช้งานได้แล้ว นอกจากการเปลี่ยนเป็น post_format แล้วฉันยังต้องเปลี่ยน 'ข้อตกลง' => 'ใบเสนอราคา' กลับไปที่ 'ข้อตกลง' => 'โพสต์รูปแบบการอ้างอิง' สำหรับคนอื่น ๆ ที่สนใจโปรดดูแก้ไข 3 ของโพสต์ต้นฉบับสำหรับรหัสสุดท้าย
PNMG

แน่นอนว่าดีใจที่ฉันสามารถช่วย :)
Jared White

2

ในtax_query"ข้อตกลง" ยอมรับอาเรย์ดังนั้นคุณต้องใส่post-format-quoteอาเรย์แบบนี้:

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

มีใครลองและลองใช้งานดู ฉันเพิ่มส่วนอาร์เรย์และมันก็ไม่ได้ส่งคืนอะไร โพสต์รูปแบบ - อ้างกระสุนที่ถูกต้องที่จะใส่ในอาร์เรย์?
PNMG

ไม่มีไม่ได้คุณจะต้องใส่รูปแบบการโพสต์ตัวเองเช่น "อ้าง" และไม่โพสต์รูปแบบใบเสนอราคา
Bainternet

คุณหมายถึงฉันควรใส่ 'terms' => array ('quote') เนื่องจากนั่นคือสิ่งที่ฉันได้กำหนดราคาไว้ในฟังก์ชัน add_theme_support หรือไม่ ฉันลองเช่นกัน ยังไม่มีโชค
PNMG

ดี 'ข้อตกลง' => อาร์เรย์ ('อัญประกาศ') กำลังทำงานฉันลองสะท้อนรูปแบบการโพสต์ด้วย 'echo get_post_format ();' และดูสิ่งที่คุณจะได้รับ
Bainternet

ตกลงดังนั้นเมื่อฉันสะท้อนว่าฉันได้รับ 'ใบเสนอราคา' ในช่วงเวลาแห่งความสิ้นหวังฉันได้ปิดปลั๊กอินทั้งหมดและเปลี่ยนกลับไปเป็นธีมเริ่มต้นที่ยี่สิบและสร้างโพสต์ทดสอบ 3 รายการโดยมีรูปแบบการเสนอราคา ฉันได้อัปเดตไฟล์ functions.php เพื่อเพิ่มเครื่องหมายคำพูดในการเรียก add_theme_support และ index.php ที่อัปเดตเพื่อใช้รหัสต่อไปนี้: [ดูแก้ไขที่ด้านล่างของโพสต์ต้นฉบับ]
PNMG
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.