PHP फंक्शन के साथ HTML टेम्प्लेट पेज पर लौटें


10

मैं एक फॉर्म बनाना चाहता हूं जिसे मैं अपनी साइट में सम्मिलित करने के लिए शोर्ट का उपयोग कर सकता हूं।

यह वास्तव में अच्छा होगा अगर मैं एक अलग फ़ाइल में HTML भाग बना सकता हूं और फिर इसे PHP शोर्ट के साथ सम्मिलित कर सकता हूं (इसे शॉर्टकोड में बनाने के यांत्रिकी से पृष्ठ के तर्क को अलग करने के लिए)।

मैं ये कैसे करूं?

-- अपडेट करें --

यह वही है जो मैंने किया है: मेरे पास दो फाइलें हैं। एक को called प्रोफिलमप्लेट.फपी ’और एक को। स्कॉड’ कहा जाता है। वे दोनों एक प्लगइन का हिस्सा हैं जो मैं अपनी साइट के लिए एक init.php के साथ बना रहा हूं जो उन्हें इनिशियलाइज़ करता है। यहाँ उनकी सामग्री है:

init.php

<?php
require_once(dirname(__FILE__).'/pages/scodes.php');
?>

scodes.php

function jf_testcode() {
    include dirname(__FILE__) . 'profiletemplate.php';
}

add_shortcode('testfield', 'jf_testcode');

profiletemplate.php

<?php // Template for my form shortcode ?>
<form>
Testing
</form>

मैं तब अपनी साइट के एक पृष्ठ पर [testfield] शोर्ट का उपयोग करता हूं।

अपडेट २

तो यह विधि काम कर रही है, लेकिन यह HTML नहीं डाल रही है जहां शोर्ट कहा जाता है। इसके बजाय यह केवल पृष्ठ के शीर्ष पर सामग्री सम्मिलित कर रहा है (जैसे कि अगर मैंने किसी फ़ंक्शन में 'रिटर्न' परीक्षण '' के बजाय 'इको' परीक्षण '' कहा है)।


खैर, शुरुआत के लिए, आप एक PHP फ़ाइल में सादा HTML लिख सकते हैं। फिर आपको अपने फ़ंक्शन को लिखना होगा functions.phpजिसमें इस निश्चित फ़ाइल को शामिल करना / शामिल करना है, और add_shortcode()अपने फ़ंक्शन को कॉल करने के लिए अपना वांछित शोर्ट सेट करना है।
tfrommen

जवाबों:


24

कुछ ऐसा जो मुझे मेरी पिछली टिप्पणी में भूल गया कि लघुकोड था लौट सामग्री, दोनों का सुझाव दिया includeऔर मेरे विकल्प get_template_partहोगा सीधे उत्पादन सामग्री (है जो क्या आप के बजाय जहां शोर्ट कहा जाता है के अपने पेज के शीर्ष पर दिखाई देने वाली सामग्री के साथ देख रहे हैं)। इसका प्रतिकार करने के लिए हमें आउटपुट बफरिंग का उपयोग करना चाहिए ।

अपने फ़ंक्शंस में शोर्ट को परिभाषित करें। एफपीपी (या आपकी साइट की साइट-विशिष्ट फ़ंक्शंस फ़ाइल)।

function my_form_shortcode() {
    ob_start();
    get_template_part('my_form_template');
    return ob_get_clean();   
} 
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

फिर अपने थीम फोल्डर में आपको एक फाइल की आवश्यकता होती है, जिसे my_form_template.phpशोर्ट कोड रखने के बाद कहीं भी लोड किया जाएगा।


उत्तम! यह fabulously काम करता है!
विलियम

यदि आप एक प्लगइन के भीतर भी ऐसा ही करने की कोशिश करते हैं तो आपको शामिल करने की आवश्यकता है। देखें wordpress.stackexchange.com/a/124794/75817
patrics

वाह ... मेरा दिन बचाया..प्राकृतिक कोड
dipak_pusti

2

अपने को निम्नलिखित जोड़े functions.php :

function my_form_shortcode() {
    include dirname( __FILE__ ) . 'my_form_template.php';
} // function my_form_shortcode
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

फ़ाइल my_form_template.php :

<?php // Template for my form shortcode ?>
<form ...>
    FIELDS
</form>

1
आप get_template_part()अपने शोर्ट फ़ंक्शन के अंदर भी उपयोग कर सकते हैं ।
हेलगेटहाइकिंग

मैंने @ tf के समाधान को लागू करने की कोशिश की - मैंने इसके बारे में अपनी पोस्ट में एक अपडेट जोड़ा
विलियम

@helgatheviking - यह कैसे कार्य करता है?
विलियम

Get_template_part () के विवरण के लिए कोडेक्स देखें और इसके शोर्ट के साथ संयोजन के रूप में इसका उपयोग करने के लिए मेरा उत्तर देखें।
हेलगेटहाइकिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.