वर्डप्रेस फंक्शन तभी उपलब्ध होते हैं, जब वर्डप्रेस लोड होता है। यदि आप style.php
सीधे फोन करते हैं तो आप वर्डप्रेस फ़ंक्शन का उपयोग नहीं कर सकते हैं।
अपने PHP संचालित स्टाइलशीट के लिए वर्डप्रेस को लोड करने का एक सरल तरीका वर्डप्रेस के लिए एक समापन बिंदु जोड़ना है: एक कस्टम, आरक्षित URL जहां आप अपनी टेम्पलेट फ़ाइल लोड करते हैं।
आपको वहाँ पहुँचने के लिए:
के 'init'
साथ एक समापन बिंदु पंजीकृत करें add_rewrite_endpoint()
। नाम बताइए 'phpstyle'
।
हुक 'request'
करें और सुनिश्चित करें कि सेट होने पर समापन बिंदु चर 'phpstyle'
खाली नहीं है। क्रिस्टोफर डेविस के उत्कृष्ट ए (अधिकतर) वर्डप्रेस रीवेट एपीआई को पूरा गाइड पढ़ें यह समझने के लिए कि यहां क्या हो रहा है।
'template_redirect'
डिफ़ॉल्ट टेम्पलेट फ़ाइल के बजाय अपनी फ़ाइल को हुक करें और वितरित करें index.php
।
चीजों को छोटा रखने के लिए मैंने निम्नलिखित डेमो प्लगइन में एक फ़ंक्शन में सभी तीन सरल चरणों को जोड़ा ।
प्लगइन PHP शैली
<?php # -*- coding: utf-8 -*-
/*
* Plugin Name: PHP Style
* Description: Make your theme's 'style.php' available at '/phpstyle/'.
*/
add_action( 'init', 'wpse_54583_php_style' );
add_action( 'template_redirect', 'wpse_54583_php_style' );
add_filter( 'request', 'wpse_54583_php_style' );
function wpse_54583_php_style( $vars = '' )
{
$hook = current_filter();
// load 'style.php' from the current theme.
'template_redirect' === $hook
&& get_query_var( 'phpstyle' )
&& locate_template( 'style.php', TRUE, TRUE )
&& exit;
// Add a rewrite rule.
'init' === $hook && add_rewrite_endpoint( 'phpstyle', EP_ROOT );
// Make sure the variable is not empty.
'request' === $hook
&& isset ( $vars['phpstyle'] )
&& empty ( $vars['phpstyle'] )
&& $vars['phpstyle'] = 'default';
return $vars;
}
प्लगइन स्थापित करें, wp-admin/options-permalink.php
एक बार फिर से लिखे नियमों को ताज़ा करने के लिए जाएं , और style.php
अपनी थीम में जोड़ें ।
नमूना style.php
<?php # -*- coding: utf-8 -*-
header('Content-Type: text/css;charset=utf-8');
print '/* WordPress ' . $GLOBALS['wp_version'] . " */\n\n";
print get_query_var( 'phpstyle' );
अब विजिट करें yourdomain/phpstyle/
। आउटपुट:
/* WordPress 3.3.2 */
default
लेकिन अगर आप yourdomain/phpstyle/blue/
आउटपुट पर जाते हैं:
/* WordPress 3.3.2 */
blue
तो आप एक मूल्य के आधार पर एक फ़ाइल के साथ विभिन्न स्टाइलशीट देने के लिए समापन बिंदु का उपयोग कर सकते हैं get_query_var( 'phpstyle' )
।
चेतावनी
यह आपकी साइट को धीमा कर देगा। प्रत्येक यात्रा के लिए वर्डप्रेस को दो बार लोड करना पड़ता है । आक्रामक कैशिंग के बिना यह मत करो।