क्या मैं टेक्स्ट पैनल में प्रारूप विकल्प में एक कस्टम प्रारूप जोड़ सकता हूं?


16

टेक्स्ट एडिटर में, जहाँ आप हेडिंग और अन्य सेटिंग्स सेट कर सकते हैं, क्या ग्राहकों के लिए अपनी खुद की शैलियों को जोड़ना संभव है? और यहां तक ​​कि अनावश्यक लोगों को हटा दें?


2
WP3 और TinyMCE इस पहलू में गड़बड़ है। मुझे विश्वास नहीं हो रहा है कि लानत स्वरूपों को आसानी से जोड़ना या अनुकूलित करना संभव नहीं है, जैसे कि सीकेडीटर में है।
चेरोविम

1
मैं सहमत हूं, यह कुल दर्द है।
मिल्ड फज

जवाबों:


17

: "क्लासिक" TinyMCE संपादक दो ड्रॉपडाउन है formatselectके लिए अनुच्छेद शैलियों और styleselectके लिए चरित्र शैलियों - जो भी अनुच्छेद शैलियों शामिल कर सकते हैं, इसे और अधिक भ्रमित करने के लिए। वर्डप्रेस में डिफ़ॉल्ट रूप से कॉन्फ़िगरेशन केवल प्रारूप ड्रॉपडाउन दिखाता है । यदि आप संपादक के लिए एक कस्टम स्टाइलशीट लागू करते हैं, तो TinyMCE इसे क्लासनेम लेने और स्टाइल ड्रॉपडाउन में जोड़ने के लिए उपयोग कर सकता है - लेकिन यह मेरे लिए हर बार काम नहीं करता था।

3.0 जब से तुम फोन कर सकते हैं add_editor_style()अपने में functions.phpसंपादक को स्टाइलशीट जोड़ने के लिए। डिफ़ॉल्ट रूप से यह editor-style.cssआपकी थीम डायरेक्टरी में है। 3.0 से पहले आपको mce_cssअपने संपादक स्टाइलशीट में URL जोड़ने के लिए फ़िल्टर में हुक करना होगा । इस में खत्म हो जाएगा TinyMCE विन्यास मूल्यcontent_css

स्टाइल ड्रॉपडाउन जोड़ने के लिए , styleselectविकल्प को बटन बार कॉन्फ़िगरेशन सरणियों में से एक में दिखाई देना चाहिए ( वर्डप्रेस theme_advanced_buttons[1-4]द्वारा फ़िल्टर किए गए TinyMCE mce_buttons_[1-4]में)। ब्लॉक प्रारूपों की सूची को TinyMCE के विकल्प द्वारा नियंत्रित किया जाता हैtheme_advanced_blockformats , जिसे आप tiny_mce_before_initफ़िल्टर में नियंत्रण सरणी में जोड़ सकते हैं । यदि आप स्टाइल ड्रॉपडाउन के नाम (केवल आपके सीएसएस वर्ग के नाम) को अनुकूलित करना चाहते हैं, तो theme_advanced_stylesविकल्प देखें । आप अधिक उन्नत style_formatsविकल्प का भी उपयोग कर सकते हैं जो आपको शैलियों को परिभाषित करने के लिए अधिक लचीलापन देता है।

सभी हुक और डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ प्रासंगिक PHP कोड है wp-admin/includes/post.php फ़ंक्शन में हैwp_tiny_mce() । सभी एक साथ, आपका सेटअप इस तरह दिख सकता है:

add_action( 'after_setup_theme', 'wpse3882_after_setup_theme' );
function wpse3882_after_setup_theme()
{
    add_editor_style();
}

add_filter('mce_buttons_2', 'wpse3882_mce_buttons_2');
function wpse3882_mce_buttons_2($buttons)
{
    array_unshift($buttons, 'styleselect');
    return $buttons;
}

add_filter('tiny_mce_before_init', 'wpse3882_tiny_mce_before_init');
function wpse3882_tiny_mce_before_init($settings)
{
    $settings['theme_advanced_blockformats'] = 'p,h1,h2,h3,h4';

    // From http://tinymce.moxiecode.com/examples/example_24.php
    $style_formats = array(
        array('title' => 'Bold text', 'inline' => 'b'),
        array('title' => 'Red text', 'inline' => 'span', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Red header', 'block' => 'h1', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Example 1', 'inline' => 'span', 'classes' => 'example1'),
        array('title' => 'Example 2', 'inline' => 'span', 'classes' => 'example2'),
        array('title' => 'Table styles'),
        array('title' => 'Table row 1', 'selector' => 'tr', 'classes' => 'tablerow1'),
    );
    // Before 3.1 you needed a special trick to send this array to the configuration.
    // See this post history for previous versions.
    $settings['style_formats'] = json_encode( $style_formats );

    return $settings;
}

क्या कोई विशेष प्रारूप है .css को add_editor_style का उपयोग करना चाहिए? ऐसा कुछ भी नहीं लगता है
Mild Fuzz

1
@ माइल्ड फ़ज़: मेरा पहले वाला जवाब भ्रामक था क्योंकि वर्डप्रेस केवल दो आवश्यक ड्रॉपडाउन में से एक दिखाता है। मैंने दूसरे ड्रॉपडाउन को जोड़ने और इसे नियंत्रित करने के तरीके के साथ अपने उत्तर को अपडेट किया।
जान फबरी

1
@ माइल्ड फ़ज़: style_formatsसंबंधित formatsविकी पृष्ठ में विभिन्न मदों के मापदंडों को समझाया गया है ।
जान फेब्री

1
कोई longr त्रुटियाँ पैदा करता है, लेकिन कोई प्रभाव नहीं है!
माइल्ड फज

1
json_encode उत्पन्न करता है "और 'नहीं तो जावास्क्रिप्ट टूट जाता है। आपको str_replace (' '", "" ", json_encode ($ style_formats) करने की आवश्यकता है
cherouvim 21

0

यहाँ के अनुसार TinyMCE प्रारूप ड्रॉपडाउन अब शैली पूर्वावलोकन नहीं दिखा रहा है

कारा के पास सही था, आपको नई शैलियों को देखने के लिए डिफ़ॉल्ट शैलियों को अनसेट करने की आवश्यकता है ...

unset($init['preview_styles']);

return $settings;

कृपया कुछ और विवरण जोड़ें, यह स्पष्ट नहीं है कि $settingsयहाँ क्या है। धन्यवाद
birgire
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.