आप 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.js
। assets/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 में शॉर्टकोड परिवर्तित करता है। शायद यह इस संदर्भ में भी सहायक है।
<code>
या<pre>
टैग निश्चित रूप से सिमुलेटर होंगे।