अर्क क्या करता है (शोर्ट_आट्स (एरे)?


28

कोडेक्स कहता है

shortcode_atts()ज्ञात विशेषताओं के साथ उपयोगकर्ता शोर्ट विशेषताओं को जोड़ती है और ज़रूरत पड़ने पर चूक में भर जाती है। परिणाम में ज्ञात विशेषताओं से प्रत्येक कुंजी शामिल होगी, शोर्ट विशेषताओं से मूल्यों के साथ विलय।

यह मेरे लिए बहुत मायने नहीं रखता (मैं नौसिखिया हूँ)।

यहाँ एक उदाहरण है:

function wps_trend($atts) {
extract( shortcode_atts( array(
'w' => '500', 
'h' => '330',
'q' => '',
'geo' => 'US',
), $atts));
$h = (int) $h;
$w = (int) $w;
$q = esc_attr($geo);
ob_start();  

कृपया आप समझा सकते हैं?

जवाबों:


35

shortcode_atts()जैसे काम करता है array_merge(): यह पहले में तर्कों की दूसरी सूची को मर्ज करता है । अंतर यह है: यह केवल पहले तर्क ( $default) में मौजूद कुंजियों का विलय करता है ।

extract()फिर सरणी कुंजियाँ लेता है, इन्हें चर नाम और उनके मान को चर मान के रूप में सेट करता है। 'w' => '500'आपके उदाहरण में बन जाता है $w = '500'

उपयोग न करें extract()। यह बहुत ही खराब कोड स्टाइल है। इसका उपयोग कोर में भी हटा दिया गया था , और इसका मतलब है कि कुछ ... :)

आपके उदाहरण के रूप में लिखा जाना चाहिए:

$args = shortcode_atts( 
    array(
        'w'   => '500',
        'h'   => '330',
        'q'   => '',
        'geo' => 'US',
    ), 
    $atts
);
$w = (int) $args['w'];
$h = (int) $args['h'];
$q = esc_attr( $args['q'] );

1
धन्यवाद। मुझे इसके बारे में पता नहीं था extract, इसलिए इसके लिए भी धन्यवाद!
मटनव्यू

5
extract()WP कोडिंग मानकों द्वारा भी हतोत्साहित किया जाता है। देखें make.wordpress.org/core/handbook/best-practices/...
Alexg

चेतावनी! उपयोगकर्ता इनपुट की तरह, अविश्वसनीय डेटा पर अर्क () का उपयोग न करें। असुरक्षित है और आप बहुत संघर्ष कर सकते हैं और कुछ कोड भी लिख सकते हैं जो आपके पास पहले हैं। यह केवल कुछ आसानी से, आसानी से, आसानी से कोड के संरक्षित हिस्से में उपयोग किया जा सकता है जहां आपको पता चल जाएगा कि आपको क्या उम्मीद है और आपको क्या चाहिए।
इविजन स्टीफन स्टिपिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.