संपादक के अंदर शोर्ट पाठ की उपस्थिति बदलें


11

क्या संपादक में शॉर्टकोड की उपस्थिति को बदलना संभव है या किसी भी तरह से इसे आसपास के पाठ से अधिक भिन्न बनाया जा सकता है?

उदाहरण के लिए यदि किसी पोस्ट की सामग्री इस प्रकार है ...

लोरम इप्सम के बारे में संदर्भ साइट, इसकी उत्पत्ति के बारे में जानकारी देने के साथ-साथ एक यादृच्छिक लिप्सम जनरेटर। संदर्भ स्थल लोरम इप्सम के बारे में, इसकी उत्पत्ति के बारे में जानकारी देने के साथ ही एक यादृच्छिक लिप्सम जनरेटर [शॉर्टकोड] asfdasfd [/ शोर्ट] संदर्भ साइट। लोरेम इप्सम के बारे में, इसकी उत्पत्ति के बारे में जानकारी देने के साथ-साथ लोरम इप्सम के बारे में एक यादृच्छिक लिप्सम जेनरेटर। संदर्भ स्थल, इसकी उत्पत्ति के बारे में जानकारी देने के साथ-साथ लोरम इप्सम के बारे में एक यादृच्छिक लिप्सम जनरेटर। संदर्भ स्थल, इसकी उत्पत्ति के बारे में जानकारी देते हुए। साथ ही एक यादृच्छिक लिप्स जनरेटर।

... अच्छा होगा अगर अंदर का शोर्ट बोल्ड है तो इसे आसानी से इस तरह देखा जा सकता है:

यहाँ छवि विवरण दर्ज करें


यह निश्चित रूप से सुविधाजनक होगा और कुछ रेगेक्स / जेएस के साथ निश्चित रूप से संभव है। यहां एक समान प्रश्न और एक प्लगइन है जो आपको शॉर्टकोड के लिए पूर्वावलोकन जोड़ने की सुविधा देता है , हालांकि केवल आपके द्वारा सुझाए गए सभी को हाइलाइट करना, जैसे आप <code>या <pre>टैग निश्चित रूप से सिमुलेटर होंगे।
ब्रायन विलिस

1
मुझे पता है कि यह आपके लिए अभी मददगार नहीं है, लेकिन जल्द ही कोर में एकीकरण के लिए शॉर्टकेक पर नजर रखें ... यह लंबे समय से जरूरी कोर फीचर को एक वास्तविकता बना देगा
brianjohnhanna


/ मुझ से विषय बंद, @brianjohnhanna मैंने उस प्लगइन को देखा है, लेकिन यह एक तरह का पूर्वावलोकन है (ताकि यह कैसे दृश्यपटल पर दिखेगा)। अगर मैं इस प्रश्न को अच्छी तरह से समझता हूं कि ओपी का प्रश्न संपादक के भीतर shortcode tagऔर contentभीतर को उजागर कर रहा है shortcode
चार्ल्स

जवाबों:


12

आप WordPress और TinyMCE विज़ुअल एडिटर में एक कस्टम प्लगइन जोड़ सकते हैं। अनुसरण स्रोत एक उदाहरण है जो सरल काम करता है और सभी शोर्ट से पहले और बाद में एक स्ट्रिंग जोड़ता है।

प्रयोग

शॉर्टकोड regex के माध्यम से मिल जाएगा, प्रासंगिक यदि आपको इसे अलग शॉर्टकोड और इस पर अलग-अलग चिह्न की आवश्यकता है। स्क्रिप्ट शॉर्टकोड में कस्टम सामग्री जोड़ते हैं, <b>FB-TESTसमापन टैग और सामग्री से पहले और बाद में यहां । दृश्यता बनाने के लिए आप मार्कअप, सीएसएस कक्षाओं का भी उपयोग कर सकते हैं। महत्वपूर्ण यह है कि आप इस सामग्री को स्क्रिप्ट में सहेजे गए पोस्ट पर निकाल दें PostProcess। यहां स्क्रिप्ट चलाएं और फ़ंक्शन के माध्यम से कस्टम सामग्री को हटा दें restoreShortcodes

लेकिन, वर्तमान में यह सरल है, शायद प्रत्येक आवश्यकता के लिए मान्य नहीं है। शायद आपको इनकोड पर शोर्ट स्टोर करना चाहिए और इस संग्रहीत चर के साथ पुनर्स्थापित करना चाहिए।

स्क्रीनशॉट

परिणाम को समझने के लिए उदाहरण के रूप में स्क्रीनशॉट देखें।

यहाँ छवि विवरण दर्ज करें

स्रोत

स्रोत को इसका उपयोग करने के लिए इस निर्देशिका संरचना की आवश्यकता है:

-- shortcode-replace
 |--php file
 |--assets
   |-- js
     |-- js file

पहले एक छोटी सी php फाइल, जिसमें wp वातावरण में प्लगइन के रूप में स्रोत शामिल होता है। इसे प्लगइन की मुख्य निर्देशिका में छोड़ दें shortcode-replace

<?php # -*- coding: utf-8 -*-

/**
 * Plugin Name:     Shortcode Replace
 * Plugin URI:      
 * Description:     
 * Version:         0.0.1
 * Text Domain:     
 * Domain Path:     /languages
 * License:         MIT
 * License URI:
 */

namespace FbShortcodeReplace;

if ( ! function_exists( 'add_action' ) ) {
    exit();
}

if ( ! is_admin() ) {
    return;
}

add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\initialize' );
function initialize( $page ) {

    if ( 'post.php' === $page ) {
        add_filter( 'mce_external_plugins', __NAMESPACE__ . '\add_tinymce_plugin' );
    }
}

function add_tinymce_plugin( $plugins ) {

    if ( ! is_array( $plugins ) ) {
        $plugins = array();
    }

    $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.dev' : '';
    $url     = plugins_url( '/assets/js/fb_shortcode_replace.js', __FILE__ );

    $plugins = array_merge( $plugins, array( 'fb_shortcode_replace' => $url ) );
    return $plugins;
}

यह php फाइल विजुअल एडिटर में प्लगइन के रूप में एक जावास्क्रिप्ट लोड करती है। प्लगइन केवल व्यवस्थापक पृष्ठों पर लोड होगा, केवल स्ट्रिंग वाले पृष्ठ post.php- देखें if ( 'post.php' === $page ) {

अनुसरण स्रोत जावास्क्रिप्ट फ़ाइल है, जिसका नाम है fb_shortcode_replace.jsassets/js/इस प्लगइन की निर्देशिका निर्देशिका के अंदर निर्देशिका में छोड़ दें ।

tinymce.PluginManager.add( 'fb_shortcode_replace', function( editor ) {

    var shortcode = /\[.+\]/g;
    var additional_before = '<b>FB-TEST';
    var additional_after = 'FB-TEST</b>';

    function ifShortcode( content ) {

        return content.search( /\[.+\]/ ) !== -1;
    }

    function replaceShortcodes( content ) {

        return content.replace( shortcode, function( match ) {
            return html( match );
        } );
    }

    function restoreShortcodes( content ) {

        content = content.replace( additional_before, '' );
        content = content.replace( additional_after, '' );
        return content;
    }

    function html( data ) {

        console.log( data );
        return additional_before + data + additional_after;
    }

    editor.on( 'BeforeSetContent', function( event ) {

        // No shortcodes in content, return.
        if ( ! ifShortcode( event.content ) ) {
            return;
        }

        event.content = replaceShortcodes( event.content );
    } );

    editor.on( 'PostProcess', function( event ) {

        if ( event.get ) {
            event.content = restoreShortcodes( event.content );
        }
    } );
} );

उपयोगी

अतिरिक्त संकेत

प्लगइन रॅफ इसे देखने और परिणाम को समझने के लिए सरल बनाने के लिए HTML में शॉर्टकोड परिवर्तित करता है। शायद यह इस संदर्भ में भी सहायक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.