我正在尝试制作一个短代码"插件" - 类似于Wordpress与TinyMce一起使用的代码.我希望用户能够通过按钮插入短代码(如[gallery id="3"]或[image id="9"]),然后显示占位符而不是实际的短代码.一旦我开始工作,我会将所有代码都放到github上.
我有一个按钮,使用insertHtml()这样的方式将html插入编辑器:
// Custom button code
CKEDITOR.instances['editor_instance_name'].insertHtml '<div class="media-library-gallery">[gallery id=' + gallery_id + ']</div>'
Run Code Online (Sandbox Code Playgroud)
并且我已添加extraAllowedContent以允许div我需要的类:
// CKEditor configuration (config.js)
config.extraAllowedContent = 'div(media-library-image,media-library-gallery)';
Run Code Online (Sandbox Code Playgroud)
我设法div.media-library-gallery使用以下代码替换图像:
(function() {
CKEDITOR.plugins.add('media_gallery', {
init: function(editor) {
CKEDITOR.addCss('.media_gallery{background: #f2f8ff url("/assets/gallery.png") no-repeat scroll center center; border: 1px dashed #888; display: block; width:100%; height: 250px;}');
},
afterInit: function( editor ) {
var dataProcessor = editor.dataProcessor;
var dataFilter = dataProcessor && dataProcessor.dataFilter;
dataFilter.addRules({ …Run Code Online (Sandbox Code Playgroud) 我试图在PHP中创建一个Wordpress短代码样式的功能,用图像替换像"[[133]]"这样的短代码.基本上,我有一个图像URL /标题/副标题的MySQL表,ID为1-150,我希望能够使用这样的短代码将它们动态插入到我的页面文本中:
Blabla bla bla bla bla.[[5]]此外,唧唧歪歪喇嘛喇嘛[[27]]嘿,并唧唧歪歪![[129]]
所以,我只想把ID作为$ id,然后将其提供给MySQL查询,如mysql_query("SELECT title,subtitle,url FROM images WHERE id = $ id"),然后替换"[[id]] "用img/title/subtitle.我希望能够在同一页面上多次这样做.
我知道这必须涉及正则表达式和preg_match,preg_replace,strstr,strpos,substr的一些组合...但我不知道从哪里开始以及我应该使用哪些函数来做哪些事情.你能推荐一个策略吗?我不需要代码本身 - 只知道使用哪些部分将非常有用.
我已经按照Nettuts上的教程了解如何向TinyMCE添加自定义按钮(http://net.tutsplus.com/tutorials/wordpress/wordpress-shortcodes-the-right-way/)
它工作得很好,所有,但我想添加许多按钮,我想知道是否有一个聪明的方法来做到这一点,而不必一遍又一遍地复制所有代码.
这是我用来添加按钮的代码:
add_shortcode("quote", "quote");
function quote( $atts, $content = null ) {
return '<div class="right text">"'.$content.'"</div>';
}
add_action('init', 'add_button');
function add_button() {
if ( current_user_can('edit_posts') && current_user_can('edit_pages') )
{
add_filter('mce_external_plugins', 'add_plugin');
add_filter('mce_buttons_3', 'register_button');
}
}
function register_button($buttons) {
array_push($buttons, "quote");
return $buttons;
}
function add_plugin($plugin_array) {
$plugin_array['quote'] = get_bloginfo('template_url').'/js/customcodes.js';
return $plugin_array;
}
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码创建customcodes.js文件:
(function() {
tinymce.create('tinymce.plugins.quote', {
init : function(ed, url) {
ed.addButton('quote', {
title : 'Add a Quote',
image : url+'/image.png',
onclick : function() {
ed.selection.setContent('[quote]' …Run Code Online (Sandbox Code Playgroud) 是否可以在Wordpress TinyMCE编辑器中更改短代码外观?我的一个客户没有HTML知识,很难向他解释在子页面上不能编辑的内容.
默认情况下,短代码如下所示:

我想实现这个目标:

TinyMCE是否支持任何类型的自定义过滤?
在wordpress管理员中,我想在创建页面时执行以下操作:
页面标题:测试
页面内容:
Lorem ipsum dolor [page_title]坐下来,奉献精神.Nunc et lectus坐在amet [page_title] tortor上的ante ante vulputate ultrices.semper的Nam mattis commodo mi.Suspendisse ut eros dolor.Mordi at odio feugiat [page_title] nunc vestibulum venenatis sit amet vitae neque.Nam ullamcorper ante ac risus malesuada id iaculis nibh ultrices.
在哪里说[page_title]我希望它打印页面标题(测试)
这需要通过管理系统来实现,而不是在模板中硬编码.
我正在这个网站上工作,我被要求在结帐页面添加购物车项目列表.我决定添加
[woocommerce_cart]
Run Code Online (Sandbox Code Playgroud)
短信代码到结帐页面上方
[woocommerce_checkout]
Run Code Online (Sandbox Code Playgroud)
短代码,只需使用CSS隐藏结帐页面上购物车中的"继续结帐 - >"按钮.
但是,这引入了一个新问题.现在,当在Checkout页面上选择装运时,它默认为在Cart页面上为购物车设置的任何装运...即使在结帐页面上选择了新装运.
显然,这不是将购物车输出添加到结帐页面的方法.
是否有一个短代码只是为了显示购物车物品本身?
我需要编辑什么才能在结帐页面上显示购物车项目?
我想知道是否有一个短代码(MAC)来标记几行(见下面的例子).
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last Name"
android:id="@+id/textView"
android:layout_column="0"
android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)
- >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last Name"
android:id="@+id/textView"
android:layout_column="0"
android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)
我查看了命令列表,但找不到任何东西.也许有另一种方法可以做到这一点.
是否可以在博客中创建短代码?就像是:
[item]contents[/item]
Run Code Online (Sandbox Code Playgroud)
要么
[img class='someClass']yourimagelink[/img]
Run Code Online (Sandbox Code Playgroud) 我为 WordPress 编写的短代码有问题。我正在尝试使用该get_the_content()函数,但不是提取我创建的自定义帖子类型的内容,而是提取短代码所在页面的内容。其他功能都工作正常,例如get_the_title()和 g et_the_post_thumbnail()。我在函数中传递了 ID,它对于其他一切都非常有效,只是不适用get_the_content。
get_the_content($testimonial_item->ID);
Run Code Online (Sandbox Code Playgroud)
短代码包含分页和其他元素,它们都可以正常工作,只是这个功能让我感到悲伤。完整的代码如下,任何帮助将不胜感激。
function ncweb_display_testimonial_items($atts, $content = null) {
extract( shortcode_atts( array(
'per_page' => 6
), $atts ) );
/* pagination parameters */
// check what page we are on
if ( isset ($_GET['testimonial-page'] ) ) $page = $_GET['testimonial-page']; else $page = 1;
// default number of pages
$total_pages = 1;
// portfolio offset. Used in the get_posts() query to show only portfolio for the current page
$offset …Run Code Online (Sandbox Code Playgroud) 如何将具有更多参数和多行的短代码插入 WordPress 页面?反斜杠曾经用作行分隔符:
[my_shorcode parameter_1=10 \
parameter_2=20 \
parameter_3="test"]
Run Code Online (Sandbox Code Playgroud)
但它在最新的 WordPress 版本中不起作用。我想使用更多行来提高代码的可读性。