चूंकि पोस्ट उनके डेटा को the_post()
(क्रमशः के माध्यम से setup_postdata()
) सेट करते हैं और इसलिए एपीआई ( get_the_ID()
उदाहरण के लिए) के माध्यम से सुलभ होते हैं , चलो मान लेते हैं कि हम उपयोगकर्ताओं के एक सेट के माध्यम से लूप कर रहे हैं (जैसा setup_userdata()
कि वर्तमान में लॉग किए गए उपयोगकर्ता और isn के वैश्विक चर भरते हैं ) इस कार्य के लिए उपयोगी) और प्रति उपयोगकर्ता मेटा डेटा प्रदर्शित करने का प्रयास करें:
<?php
get_header();
// etc.
// In the main template file
$users = new \WP_User_Query( [ ... ] );
foreach ( $users as $user )
{
set_query_var( 'user_id', absint( $user->ID ) );
get_template_part( 'template-parts/user', 'contact_methods' );
}
फिर, हमारी wpse-theme/template-parts/user-contact_methods.php
फ़ाइल में, हमें यूज़र्स आईडी को एक्सेस करने की आवश्यकता है:
<?php
/** @var int $user_id */
$some_meta = get_the_author_meta( 'some_meta', $user_id );
var_dump( $some_meta );
बस।
स्पष्टीकरण वास्तव में आपके प्रश्न में उद्धृत भाग के ठीक ऊपर है:
हालाँकि, load_template()
जिसे get_template_part()
सभी अप्रत्यक्ष रूप से WP_Query
क्वेरी चर के अर्क द्वारा लोडेड टेम्प्लेट के दायरे में कहा जाता है ।
देशी PHP extract()
फ़ंक्शन चर ( global $wp_query->query_vars
संपत्ति) को "अर्क" करता है और प्रत्येक भाग को अपने स्वयं के चर में डालता है जिसका कुंजी के समान नाम है। दूसरे शब्दों में:
set_query_var( 'foo', 'bar' );
$GLOBALS['wp_query'] (object)
-> query_vars (array)
foo => bar (string 3)
extract( $wp_query->query_vars );
var_dump( $foo );
// Result:
(string 3) 'bar'
set_query_var
औरget_query_var
, लेकिन इस एक के मूल्यों का उपयोग कर के लिए था$args
सरणी है कि एक को पारित कर दिया हैWP_Query
। यह सीखना शुरू करने वाले अन्य लोगों के लिए मददगार हो सकता है।