shortcode 相关问题

短代码允许Wordpress插件作者以简洁的方式为其功能提供钩子。在2.5版中引入,短代码是接受可选属性的对象的定义。如果要实现短代码并需要有关底层功能的帮助,请使用此标记。

Woocommerce 产品类型简码

在 woocommerce 短代码中按类型过滤产品的语法是什么?我尝试了以下操作但未成功。 [产品product_type =“简单”per_page =“12”列=“3”] 和 [产品类型=“

回答 1 投票 0

添加 Wordpress 短代码以返回空格分隔的 slugs,并对单词大小写进行自定义更改

我尝试组合我的短代码: add_shortcode( 'MARKE', 'marke_shortcode' ); 函数 marke_shortcode() { $terms = get_the_terms( get_the_ID(), 'marken'); 返回 ucwords($terms[1]->slug)...

回答 2 投票 0

组合简码并以全部大写形式打印包含 3 个或更少字母的所有单词

我尝试组合我的短代码: add_shortcode( 'MARKE', 'marke_shortcode' ); 函数 marke_shortcode() { $terms = get_the_terms( get_the_ID(), 'marken'); 返回 ucwords($terms[1]->slug)...

回答 1 投票 0

更智能地给出 ACF 字段的最低值

目前我使用以下函数给出 ACF 字段的最小编号。该代码可以工作,但不是最聪明、最节省资源的方式。 add_shortcode( 'LEASINGFAKTOR', '

回答 1 投票 0

根据 WooCommerce 购物车和结账中选择的运输方式显示短代码内容

我正在尝试根据客户选择的送货方式添加自定义消息。使用这段代码,我能够做到这一点。唯一的问题是我应该用短代码替换文本部分。

回答 1 投票 0

从基于 WooCommerce 运输方式的短代码添加自定义消息

我正在尝试根据客户选择的送货方式添加自定义消息。使用这段代码,我能够做到这一点。唯一的问题是我应该用短代码替换文本部分。

回答 1 投票 0

添加简码功能

我想创建一个函数来添加Wordpress短代码,但仅限于内容部分标题后面的“新闻博客”页面。 这是我的代码,它不起作用: add_action('__after_hea...

回答 1 投票 0

PHP - 嵌套简码到数组

我有以下 PHP 函数,可以转换短代码,例如 [柱子] [排] [列][/列] [/排] [/柱子] 到嵌套数组 大批 ( [0] => 数组 ( [...

回答 2 投票 0

Wordpress 短代码不起作用

每次我尝试将短代码添加到我的 WordPress 网站时,它最终只会显示我添加到实际页面的代码。我已将代码粘贴到内容部分的“文本”区域,但是......

回答 2 投票 0

在 Woocommerce 3.3 中使用产品短代码的自定义分类法

我目前正在开发 Woocommerce 网站的主页,在此页面上的目标是有 3 行显示来自不同品牌的产品。例子;第 1 行将展示 Apple 产品、Ro...

回答 2 投票 0

将嵌套短代码转换为数组的正则表达式

我有以下 PHP 函数,可以转换短代码,例如 [柱子] [排] [列][/列] [/排] [/柱子] 到嵌套数组 大批 ( [0] => 数组 ( [...

回答 1 投票 0

创建短代码以在 Woocommerce 上显示产品库存状态

我想在我们的产品页面上显示库存状态,例如“有货”,我理想情况下希望通过自定义短代码显示库存状态。 有谁知道这是否可能或

回答 2 投票 0

短代码 vc_map - 自定义标记输出参数问题

我正在尝试在主题内制作简单的短代码,以在管理视图中演示自定义标记选项。代码如下: ` <...

回答 1 投票 0

在 PHP 中创建短代码功能(搜索文本中的短代码,用链接替换短代码)

我正在尝试在我的网站上用 PHP 创建自己的短代码(直接 PHP,无 CMS)。我有一个大型数据库,想向许多文本字段添加短代码,以进行链接和其他...

回答 1 投票 0

带有 woocommerce_before_customer_login_form 的短代码不会引用覆盖的模板文件

我目前正在使用 WordPress 并正在创建一个自定义主题,我成功地覆盖了旧的 myaccount form-login.php 文件,因为它非常适合我的帐户页面,但我使用了一个 Shortc...

回答 1 投票 0

如何使用 WordPress 简码传递最终成为类名一部分的参数

这是我想用短代码生成的 html - 在 WordPress 中编辑页面内容时: 这是我想用短代码生成的 html - 在 WordPress 中编辑页面内容时: <div class="shadow-wrapper half-shadow im-centered"> <div class="box-shadow shadow-effect-2"> <div class="servive-block servive-block-bluemed"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec nulla vitae lacus. </div> </div> </div> 这是我想在编辑器框中使用的内容 - 当使用新的短代码时,我将定义: [box color="bluemed"] Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec nulla vitae lacus. [/box] 传递的参数:color =“bluemed”需要成为div类的一部分..如:<div class="servive-block servive-block-bluemed">(参见上面生成的html代码示例) 这是我在functions.php 文件中放入的内容,以尝试创建这个新的短代码: function colored_box_shortcode($atts) { extract(shortcode_atts(array( 'color' => grey, ), $atts)); return '<div class="shadow-wrapper half-shadow im-centered"> <div class="box-shadow shadow-effect-2"> <div class="servive-block servive-block-'.$color.'">'; } add_shortcode('box', 'colored_box_shortcode'); function colored_box_end() { return '</div> </div> </div>'; } add_shortcode('/box', 'colored_box_end'); 如您所见,我将颜色属性默认内容设置为灰色,但也允许覆盖并指定从短代码传递的参数中的颜色。 此颜色需要成为 div 内类名称的一部分。因此,如果不传递任何参数,则类名将变为:“servive-block-grey”。或者如果我传递 color="lavendar" 参数,那么类名将变为:“servive-block-lavendar”。 这可能吗? 如果是这样..有人可以帮助解决我正在使用的代码..因为当我查看页面时,我从 WordPress 收到数百个错误。 基本上,这些错误是这 3 个错误的重复(我认为这可能是由于我尝试将参数放入类名中而出现语法错误造成的 - 像这样:servive-block-'.$color.') 警告:preg_split():C:\ xampp \ htdocs \ CIRB \ CirbWP \ wp-includes ormatting.php第244行中的未知修饰符“b” 警告:为 C:\xampp\htdocs\CIRB\CirbWP\wp-includes ormatting.php 第 246 行中的 foreach() 提供的参数无效 警告:implode():第 297 行 C:\xampp\htdocs\CIRB\CirbWP\wp-includes ormatting.php 中传递的参数无效 感谢您的指导! 我认为你的问题出在这一行: add_shortcode( '/box', 'colored_box_end' ); 此警告: preg_split():未知修饰符“b” 可能是你的 '/box' 参数的结果,假设 WordPress 使用正则表达式来解析它(文档没有说明这一点,我也没有查看代码)。您不需要显式添加结束标记,只需使用 add_shortcode('box', 'colored_box_shortcode'); 并将所有内容放入一个函数而不是两个函数中。 function colored_box_shortcode( $atts, $content = "" ) { extract( shortcode_atts( array( 'color' => 'grey', ), $atts) ); return '<div class="shadow-wrapper half-shadow im-centered"> <div class="box-shadow shadow-effect-2"> <div class="servive-block servive-block-'.$color.'">' . $content '</div> </div> </div>'; } add_shortcode( 'box', 'colored_box_shortcode' ); 请修改您的简码:[/box] 至 [end-box] [box color="bluemed"] Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec nulla vitae lacus. [end-box] 试试这个: 我将 [/box] 替换为 [end-box],也将灰色替换为 'grey' function colored_box_shortcode($atts) { extract(shortcode_atts(array( 'color' => 'grey', ), $atts)); return '<div class="shadow-wrapper half-shadow im-centered"><div class="box-shadow shadow-effect-2"> <div class="servive-block servive-block-'.$color.'">'; } add_shortcode('box', 'colored_box_shortcode'); function colored_box_end() { return '</div> </div> </div>'; } add_shortcode('end-box', 'colored_box_end'); 使用 $content 输出短代码中的内容: add_shortcode("box", function ($atts, $content = "") { $atts = shortcode_atts(array( "color" => "grey", ), $atts); ?> <div class="shadow-wrapper half-shadow im-centered"> <div class="box-shadow shadow-effect-2"> <div class="servive-block servive-block-<?php echo $atts["color"];?>"> <?php echo do_shortcode($content);?> </div> </div> </div> <?php });

回答 3 投票 0

带有参数的短代码wordpress

我正在创建一个wordpress简码[ADD_POT ID='X'],它能够获取ID值,以执行函数。 不幸的是,我的代码的第三行有一个错误。有人...

回答 2 投票 0

解析数组中的BBCode

我正在尝试从 BBCode 调用函数(如 WordPress 短代码)。但我没有找到任何代码来做到这一点,只找到了 HTML 标签解析器,例如: [粗体]粗体文字[/粗体] -> 粗体文字 我正在尝试从 BBCode 调用函数(如 WordPress 短代码)。但我没有找到任何代码来做到这一点,只找到了 HTML 标签解析器,例如: [bold]Bold text[/bold] -> <b>Bold text</b> 但是我想将其保存为数组,例如: [date format="j M, Y" type="jalali"] 这样的事情: array( 'date' => array( 'format' => 'j M, Y', 'type' => 'jalali' ) ) *已编辑 我编写了一个代码来做到这一点(抱歉,如果我的英语不好): [date format="Y/m/d" type="jalali"] => Step 1: Get code between "[" and "]": date format="Y/m/d" type="jalali" Step 2: Explode space in the code: $code = array('date', 'format="Y/m/d"', 'type="jalali"') Step 3: Get shortcode name(offset 0 of $code) and get difference($code excluded offset 0): $name = 'date' $attr = array('format="Y/m/d"', 'type="jalali"') Step 4: Now I have attributes and code name. But the problem is if put space in attributes value it will explode that too: [date format="j M, Y" type="jalali"] => $code = array('date', 'format="j', 'M,', ' Y"', 'type="jalali"'); 现在我该如何解决这个问题或使用正则表达式或其他东西获取名称和属性? 您可以使用正则表达式尝试此操作 $code = '[date format="j M, Y" type="jalali"]'; preg_match_all("/\[([^\]]*)\]/", $code, $matches); $codes = []; foreach($matches[1] as $match) { // Normalize quotes into double quotes $match = str_replace("'",'"',$match); // Split by space but ignore inside of double quotes preg_match_all('/(?:[^\s+"]+|"[^"]*")+/',$match,$tokens); $parsed = []; $prevToken = ''; foreach($tokens[0] as $token) { if(strpos($token,'=') !== false) { if($prevToken !== '') { $parts = explode('=',$token); $parsed[$prevToken][$parts[0]] = trim($parts[1],'"\''); } } else { $parsed[$token] = []; $prevToken = $token; } } $codes[] = $parsed; } var_dump($codes); 结果: array(1) { [0]=> array(1) { ["date"]=> array(2) { ["format"]=> string(6) "j M, Y" ["type"]=> string(6) "jalali" } } } 使用带有 \G(继续元字符)的正则表达式,您可以解析标签的重要部分,然后循环匹配以构造二维数组。 代码:(演示) $text = <<<TEXT Some text [date format="j M, Y" type="jalali"] containing a date tag. TEXT; preg_match_all( '/ (?| #use "branch reset" to ensure all attributes are in column one of result \[ #match literal left brace (date) #match the literal tag name (?=[^\]]*]) #validate that substring is eventually followed by a right brace | #OR \G(?!^) #continue matching from last match, but not from start of string (?: #encapsulate next OR expression ] #match ending delimiter of bbtag | #OR \h([a-z\-]+)="([^"]*)" #match space, capture attribute name, match =", capture value, match " ) #close non-capturing group ) #close branch reset group /x', $text, $m, PREG_SET_ORDER ); $result = []; foreach ($m as $i => $row) { if (!$i) { $parent = $row[1]; } elseif (isset($row[1])) { $result[$parent][$row[1]] = $row[2]; } } var_export($result); 如果您要调用自定义函数并用动态文本替换标签占位符,那么您需要使用 preg_replace_callback() 解析整个标签,并将其分解为回调中的部分。我将演示如何使第一个键值对成为强制,第二个键值对成为可选 代码:(演示) function replaceTag($m) { $result[$m[1]][$m[2]] = $m[3]; if (isset($m[4], $m[5])) { $result[$m[1]][$m[4]] = $m[5]; } return json_encode($result); // https://stackoverflow.com/q/30377948/2943403 } $text = <<<TEXT Some text [date format="j M, Y" type="jalali"] containing a date tag. TEXT; echo preg_replace_callback( '/\[(date) ([a-z\-]+)="([^"]*)"(?: ([a-z\-]+)="([^"]*)")?]/', 'replaceTag', $text ); // Some text {"date":{"format":"j M, Y","type":"jalali"}} containing a date tag.

回答 2 投票 0

添加简码以包含 PHP 文件,其中包含要在 WordPress 页面内使用的 HTML + JavaScript

我创建了一个 PHP 文件,其中包含用于下拉小部件的 HTML 和 JavaScript,并输出估计的运输价格和时间。 我正在尝试创建一个用于 Wordpress“短代码”的短代码

回答 1 投票 0

Wordpress codex:当前用户头像 URL 的 php

我想知道是否有办法在wordpress中获取当前登录用户头像的URI/URL?我发现这是一种生成短代码以使用 get_a 插入当前用户头像的方法...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.