Web sitem, ön uçta çalışan özel yazı tiplerini almak için typekit kullanıyor.
Bunu arka uçtaki editör tarzlarıma koymak istiyorum. Ancak bunu nasıl yapacağımı bilmiyorum. Typekit, css font-face gömme snippet'i yerine js gömme snippet'i kullanır.
Web sitem, ön uçta çalışan özel yazı tiplerini almak için typekit kullanıyor.
Bunu arka uçtaki editör tarzlarıma koymak istiyorum. Ancak bunu nasıl yapacağımı bilmiyorum. Typekit, css font-face gömme snippet'i yerine js gömme snippet'i kullanır.
Yanıtlar:
Tom Nowell'in TinyMCE eklenti çözümü mükemmel çalışıyor, JavaScript'i Typekit'in yeni zaman uyumsuz kodunu kullanacak şekilde güncelleyin . Yeni eşzamansız gömme kodunu kullandıktan sonra, 403 sorunu ortadan kalkar ve Typekit özellikli TinyMCE'ye sorunsuzca sahip olursunuz!
Tom, tüm kodları bir blog yayınında bir araya getirdi. Bu konuda tüm ağır kaldırmayı yaptı, bu yüzden ona biraz sayfa görünümü verin ve oradaki özellikleri okuyun !
Ben bir tinymce eklentisi ekleyerek bu sorunu var, neredeyse orada ama Im typekit yazı tipi css almaya çalışırken bir 403 yasak alıyorum:
js:
(function() {
tinymce.create('tinymce.plugins.typekit', {
init: function(ed, url) {
ed.onPreInit.add(function(ed) {
// Get the DOM document object for the IFRAME
var doc = ed.getDoc();
// Create the script we will add to the header asynchronously
var jscript = "var TypekitConfig = {\n\
kitId: '*******'\n\
};\n\
(function() {\n\
var tk = document.createElement('script');\n\
tk.src = '//use.typekit.com/' + TypekitConfig.kitId + '.js';\n\
tk.type = 'text/javascript';\n\
tk.async = 'true';\n\
tk.onload = tk.onreadystatechange = function() {\n\
var rs = this.readyState;\n\
if (rs && rs != 'complete' && rs != 'loaded') return;\n\
try { Typekit.load(TypekitConfig); } catch (e) {}\n\
};\n\
var s = document.getElementsByTagName('script')[0];\n\
s.parentNode.insertBefore(tk, s);\n\
})();";
// Create a script element and insert the TypeKit code into it
var script = doc.createElement("script");
script.type = "text/javascript";
script.appendChild(doc.createTextNode(jscript));
// Add the script to the header
doc.getElementsByTagName('head')[0].appendChild(script);
});
},
getInfo: function() {
return {
longname: 'TypeKit For TinyMCE',
author: 'Tom J Nowell',
authorurl: 'http://tomjn.com/',
infourl: 'http://twitter.com/tarendai',
version: "1.0"
};
}
});
tinymce.PluginManager.add('typekit', tinymce.plugins.typekit);
})();
PHP
add_filter("mce_external_plugins", "tomjn_mce_external_plugins");
function tomjn_mce_external_plugins($plugin_array){
$plugin_array['typekit'] = get_template_directory_uri().'/typekit.tinymce.js';
return $plugin_array;
}
Komut dosyasını yönetici için enqueue edebilirsiniz, o zaman editörünüz için kullanılabilir olmalıdır. Cs
add_action( 'admin_print_scripts', 'admin_typekit' );
function admin_typekit( ) {
global $pagenow;
$arg = array( 'post.php', 'post-new.php', 'page-new.php', 'page.php' );
if ( ! in_array( $pagenow, $arg ))
return; ?>
<script type="text/javascript">
(function () {
var config = {
kitId:'xxxxxx',
scriptTimeout:3000
};
var h = document.getElementsByTagName("html")[0];
h.className += " wf-loading";
var t = setTimeout(function () {
h.className = h.className.replace(/( |^)wf-loading( |$)/g, "");
h.className += " wf-inactive"
}, config.scriptTimeout);
var tk = document.createElement("script");
tk.src = '//use.typekit.net/' + config.kitId + '.js';
tk.type = "text/javascript";
tk.async = "true";
tk.onload = tk.onreadystatechange = function () {
var a = this.readyState;
if (a && a != "complete" && a != "loaded")return;
clearTimeout(t);
try {
Typekit.load(config)
} catch (b) { } };
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(tk, s)
})();
</script>
<?php }
Bahsettiğiniz gibi bazı satır içi js gerektirdiğinden yukarıdaki kod typekit için güncellendi. Ayrıca admin_enqueue_scripts kullanmadığından $ hook değişkenini $ pagenow olarak değiştirmeliyiz.