Questions tagged «shortcode»

类似BB代码的机制,方括号内的字符串可以用作较长和更复杂的字符串的简写。这些字符串通常在页面加载时由回调处理程序处理,该处理程序将括号括起来的字符串替换为回调处理程序的输出。

6
我的代码放在哪里:plugin或functions.php?
是否有一种易于理解的方案来确定插件或主题的代码属于哪种代码functions.php? 目前有 很多 情况下,许多辩论有关的话题,主要是因为有关于WordPress的内部运作的一些误解。我是在根据事实而不是根据观点寻求答案。 它应该说明如何处理这些问题(可能还有更多): 自定义帖子类型和分类法 联系表格 简码 自定义小部件 add_theme_support( 'automatic-feed-links' ); SEO功能,例如自定义meta元素 主题切换 双方通常都有利弊。我们为您的functions.php文件提供的最受欢迎的最佳代码收集问题有很多代码片段,这些答案至少是值得商de的。 我们需要初学者可以理解的标准,也许还有清单,并附上原因。 另请参见Chip Bennett在我们的元网站上的相关问题:专门要求“没有插件”的解决方案的问题 相关:我在哪里或在网上其他地方找到的代码片段放在哪里?

8
存在简码时,排队脚本/样式
注册/排队脚本和/或样式以便在插件中使用的想法是什么? 我最近制作了一个插件简单插件,以使用简码添加用户头像/ gravatar。我有不同的样式选项来显示化身(正方形,圆形等),并决定将CSS直接放入简码本身。 但是,我现在意识到这不是一个好方法,因为每次在页面上使用简码时,它将重复css。我在该站点上还看到了其他几种方法,并且wp Codex甚至有自己的两个示例,因此很难知道哪种方法最一致,最快。 这是我目前知道的方法: 方法1:直接包含在简码中- 这是我目前在插件中所做的,但由于重复代码而显得不太好。 class My_Shortcode { function handle_shortcode( $atts, $content="" ) { /* simply enqueue or print the scripts/styles in the shortcode itself */ ?> <style type="text/css"> </style> <?php return "$content"; } } add_shortcode( 'myshortcode', array( 'My_Shortcode', 'handle_shortcode' ) ); 方法2:使用类有条件地排队脚本或样式 class My_Shortcode { static …

8
有条件地为短代码加载JavaScript / CSS
我发布了一个创建简码的插件,该插件需要一个JavaScript文件和一个CSS文件才能在包含该简码的任何页面上加载。我可以在所有页面上加载脚本/样式,但这不是最佳实践。我只想在调用短代码的页面上加载文件。我发现有两种方法可以这样做,但是都有问题。 方法1在shortcode处理函数中将标志设置为true,然后在wp_footer回调中检查该值。如果为true,则用于wp_print_scripts()加载JavaScript。这样做的问题是,它仅适用于JavaScript,而不适用于CSS,因为CSS应该在内部声明<head>,您只能在类似initor 的早期挂钩中执行此操作wp_head。 方法2提前触发并“向前看”,以查看当前页面内容中是否存在简码。我比第一种方法更喜欢这种方法,但是它的问题无法检测模板是否调用do_shortcode()。 因此,我倾向于使用第二种方法,然后尝试检测是否已分配模板,如果分配了模板,则将其解析为简码。但是,在此之前,我想检查是否有人知道更好的方法。 更新:我已经将解决​​方案集成到了我的插件中。如果有人想看到它在实时环境中充实,可以下载或浏览它。 更新2:由于WordPress的3.3,它现在可以打电话wp_enqueue_script()直接在短码回调里面,和JavaScript文件将文档的页脚中调用。从技术上讲,这对于CSS文件也是可行的,但应将其视为一种不好的做法,因为在<head>标记外输出CSS 违反W3C规范,可能会破坏FOUC,并可能迫使浏览器重新呈现页面。


1
extract(shortcode_atts(array()是做什么的?
食典说 shortcode_atts()将用户简码属性与已知属性结合起来,并在需要时填写默认值。结果将包含已知属性中的每个键,并与shortcode属性中的值合并。 这对我来说没有多大意义(我是新手)。 这是一个例子: function wps_trend($atts) { extract( shortcode_atts( array( 'w' => '500', 'h' => '330', 'q' => '', 'geo' => 'US', ), $atts)); $h = (int) $h; $w = (int) $w; $q = esc_attr($geo); ob_start(); 请您解释一下
28 shortcode 

9
停止WordPress自动添加<br>标记以发布内容
&lt;br&gt;在WordPress文本编辑器中添加返回值时,有没有一种方法可以阻止WordPress自动插入标签。 我希望它的行为更像一个代码编辑器,在其中我可以按照自己喜欢的方式构造代码并使其易于阅读。 我在编辑器中使用的代码是: [one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third] 我想这样构造它,以便于阅读和编辑: [one_third] [team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"] [custom_button url="#"]For more information[/custom_button] [/team_member] [/one_third] [one_third] [team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"] [custom_button …

3
拆分内容和库
有没有办法拆分帖子内容和画廊短代码。我想无论其放置方式或位置如何,都将画廊显示在正常内容之外。我可以使用它来获取简码本身: if(has_shortcode(get_the_content(), 'gallery')){ $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); echo do_shortcode($matches[0]); } 但是,如果画廊短代码不是第一个实例,这将不起作用。有没有办法完全拆分我的内容和画廊? 编辑:我有一个半解决方案,但这似乎是一条漫长的路要走。它首先获取帖子中的第一个短代码(由于我只希望使用“图库”短代码,因此需要对其进行修复),然后从内容中删除所有短代码(同样,并不是我真正想做的事情)。 &lt;?php if(has_shortcode(get_the_content(), 'gallery')) : ?&gt; &lt;?php $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); ?&gt; &lt;div id="content"&gt; &lt;?php echo strip_shortcodes(get_the_content()); ?&gt; &lt;/div&gt; &lt;div id="gallery"&gt; &lt;?php echo do_shortcode($matches[0]); ?&gt; &lt;/div&gt; &lt;?php endif; ?&gt; 编辑#2-好吧,我只能在帖子中获取图库的短代码。我还添加了一个过滤器来删除画廊的短代码形式the_content()-问题是它并不一定要删除短代码,因为它确实发布了它,但不允许我运行“ do_shortcode()” Functions.php function remove_gallery($content) { …

1
apply_filters('the_content',$ content)与do_shortcode($ content)
可以说我有一个主题选项或自定义的postmeta文本区域。现在,我想执行多个短代码,常规文本,图像等。 什么是最佳做法,为什么? 选项1: $content = //my text area data; echo apply_filters('the_content', $content); 选项2: $content = //my text area data; echo do_shortcode($content); 请向我解释哪种方法是最佳做法,为什么。 编辑 让我详细描述该方案。我根据客户的要求开发主题。有时,我需要在帖子/页面/自定义帖子类型上添加帖子元,以便他们可以添加短代码(滑块,联系表格等)或仅添加简单文本。这是一个文本字段。 为了使短代码有效,我使用了选项1。现在,我从某人那里听说这是错误的方法,应该使用do_shortcode。但是他们没有给我解释为什么这是错误的方式。这就是为什么我问。 这整个过程可以在wp的默认文本编辑器中完成。但是我需要为模板的特定用途创建这些选项,这是我的客户想要的。

3
在管理编辑器中呈现简码的解决方案
我大约一年前曾问过这个问题,我希望有某种简单的解决方案可以使我实现自己的目标。因此,它去了: 我经常在管理员编辑器中使用短代码,但是当我将其交给客户时,他们通常不了解它们的工作方式。 我正在寻找的是一种解决方案,该解决方案可以在所见即所得管理编辑器中简单地自动呈现短码的关联输出。 从视觉角度来看,我希望此显示类似于出现“更多”行或在编辑器中显示图像时的显示。我的意思是,用户将看到输出,但只能删除它,而不能编辑呈现的简码的内容。

4
显示短代码而不执行
我正在尝试在WordPress页面中显示代码,但无法正常工作。我读到的所有内容都表明您应该可以只将pretag与code tag一起使用,这会很好,但是当我尝试显示简码时,它将呈现简码而不是显示代码。 食品法典委员会说使用pre和代码可以工作,但对我而言不行。有人遇到过这个问题吗?我是否缺少functions.php使这项工作有效的功能?
18 shortcode 


5
如何用短代码转义']'?
如何用短代码转义右括号? 我正在使用已编码点的Google Map插件。有时多边形中包含],这使WP认为这是简码的结尾。 例如: [my_shortcode latitude='36.93' longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ] 我已经尝试过&amp;#93;,这不会导致WP出现问题,但是会导致我的Google地图代码出现问题。我可以使用Regex替换],但是也许有一种更简单的方法。简码是否具有转义符?
17 shortcode 

3
以简码传递布尔值
在WordPress短代码中,如何传递布尔属性? 这两个[shortcode boolean_attribute="true"]或者[shortcode boolean_attribute=true]是给字符串值。 编辑 如果我使用@brasofilo评论的技巧,知道他们在做什么的用户将没有问题。但是,如果某些用户提供属性false值并获得true值,他们将会迷路。那么还有其他解决方案吗?

4
如何在functions.php中使用PHP手动修复WordPress画廊代码?
已经有很多次谈论Wordpress为内置画廊功能输出一些非常糟糕的代码。 这是负责图库输出的核心代码(在/wp-includes/media.php中): function gallery_shortcode($attr) { global $post; static $instance = 0; $instance++; // Allow plugins/themes to override the default gallery template. $output = apply_filters('post_gallery', '', $attr); if ( $output != '' ) return $output; // We're trusting author input, so let's at least make sure it looks like a valid …

2
简码始终显示在页面顶部
我正在使用简码通过loops-name.php引入不同的循环。由于某些原因,它始终位于页面顶部。我用谷歌搜索,并使用echo而不是return导致了该问题,但是对于我的代码,我没有使用echo。这是简码: // setup the shortcode for use function friendly_loop_shortcode( $atts, $content = null ) { extract( shortcode_atts( array( 'category' =&gt; '', 'module' =&gt; '' ), $atts ) ); include(locate_template('loop-'.$module.'.php')); } 知道为什么会这样吗?
15 shortcode 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.