วิธีการ: ตรวจสอบตัวแปรทั่วโลกใน WordPress


22

ผู้คนมักสับสนเกี่ยวกับวิธีการรับข้อมูลจากวัตถุ / ตัวแปรระดับโลก

คำถาม:คุณสามารถตรวจสอบตัวแปรทั่วโลกในรูปแบบใด


คำถามนี้เขียนขึ้นเพราะต้องการความสวยบ่อยๆที่ WA ฉันแค่อยากให้มันเป็นลิงก์ที่น่าสนใจที่นี่ (คนมักจะไม่ดูที่ลิงค์ gist github)

อย่าลังเลที่จะแก้ไขตัวอย่างถ้ามีอะไรผิดปกติหรือคุณคิดว่าคำอธิบายนั้นหายไป หากคุณต้องการเพิ่มสิ่งที่มีประโยชน์อื่น ๆ โปรดเพิ่มคำตอบแต่ละข้อเป็นคำตอบเดียว ขอขอบคุณ.


นี่ควรเป็นวิกิของชุมชนหรือใช้คำถามใหม่
t31os

@ t31os คุณสามารถทำสิ่งนี้ได้หรือไม่ ฉันไม่รู้ด้วยซ้ำว่าฉันจะหาวิกิชุมชนได้ที่ไหน ...
kaiser

ฉันคิดว่าก่อนหน้านี้ฉันสามารถทำได้เมื่ออยู่ในรุ่นเบต้าไม่ใช่ตอนนี้ความต้องการตัวแทนสูงกว่าอาจต้องขอให้ผู้ใช้ตัวแทนระดับสูงทำเครื่องหมายคำถามเป็นวิกิบางที @Rarst หรือ @MikeSchinkel สามารถ ..
t31os

@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

คำตอบ:


12

หรือถ้าคุณขี้เกียจเพียงติดตั้งปลั๊กอินDebug Bar

มันเพิ่มปุ่มลงในแถบผู้ดูแลระบบที่เมื่อคลิกแล้วจะแสดงแผงที่มีข้อมูลที่เป็นประโยชน์ทุกประเภทรวมถึงประกาศการคัดค้านตัวแปร WP_Query และบันทึกแบบสอบถาม SQL


ถูกต้องที่สุด. แต่มันจะไม่อธิบายให้คุณทราบถึงวิธีการเข้าถึงตัวแปร / วัตถุระดับโลกและวิธีการแยกส่วนออกจากมัน
ไกเซอร์

Btw: คุณสามารถเพิ่มคำอธิบายสั้น ๆ เกี่ยวกับวิธีการทำงานของมันได้หรือไม่ ฉันคิดว่ามันสามารถ / จะช่วยขยาย "วิธีการพื้นฐาน" นี้ -AQ
ไกเซอร์

@kaiser: เสร็จแล้ว
scribu

4

วิธีตรวจสอบข้อมูล:

ใช้สิ่งนี้เพื่อรับมุมมองเชิงลึกของสิ่งที่คุณสามารถใช้ได้จากคำขอ / wp_query ปัจจุบัน

function inspect_wp_query() 
{
  echo '<pre>';
    print_r($GLOBALS['wp_query'])
  echo '</pre>';
}
// If you're looking at other variables you might need to use different hooks
// this can sometimes be a little tricky.
// Take a look at the Action Reference: http://codex.wordpress.org/Plugin_API/Action_Reference
add_action( 'shutdown', 'inspect_wp_query', 999 ); // Query on public facing pages
add_action( 'admin_footer', 'inspect_wp_query', 999 ); // Query in admin UI

Btw:

    // this:
    global $wp_query;
    $wp_query;
    // is the same as
    $wp_query;
    // and as this:
    $GLOBALS['wp_query'];

// You can do this with each other global var too, like $post, etc.

วิธีรับข้อมูลจริง:

// Example (not the best one)
(Object) WP_Query -> post (stdClass) -> postdata (Array)

// How to get the data:
// Save object into var
$my_data = new WP_Query; // on a new object
// or on the global available object from the current request
$my_data = $GLOBALS['wp_query'];

// get object/stdClass "post"
$my_post_data = $my_data->post;
// get Array
$my_post_data = $my_data['post'];


แสดง
รายการชื่อแถบข้างทั้งหมดหรือไม่
(สร้างวัตถุแบบหล่นลง / เลือกที่มีแถบด้านข้างทั้งหมดภายในglobal $wp_registered_sidebars)


0

ขึ้นอยู่กับว่าในระหว่างการโหลดสคริปต์และการแสดงผลสุดท้ายตัวแปรบางตัวที่กล่าวถึงข้างต้นอาจไม่ปรากฏ หากคุณต้องการมุมมองที่ค่อนข้างครอบคลุมอาจจะสุดขั้วให้ลอง:

var_dump($GLOBALS);

var_dump ยังดีที่บอกประเภทและรูปแบบของข้อมูลบิต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.