我制作了一个简单的 WP 插件,它将从中获取一些文档calameo.com
并以一种很好的方式呈现它们。我已经为它制作了一个自定义简码。我们称之为“短代码”……</p>
我[Shortcode vendor=vendor1]
只需要出示与供应商相关的文件,而且我知道该怎么做。
我需要做的是将参数值从 url 传递到简码,但我还没有找到方法。
任何帮助表示赞赏。
要从 URL 传递一些变量,您将$_GET
在短代码中使用,如下例所示:
if( ! function_exists('this_is_my_shortcode') ) {
function this_is_my_shortcode( $atts, $content = null ) {
// Attributes
$atts = shortcode_atts( array(
'vendor' => '',
'thekey1' => isset($_GET['thekey1']) ? sanitize_key($_GET['thekey1']) : '',
'thekey2' => isset($_GET['thekey2']) ? sanitize_key($_GET['thekey2']) : '',
), $atts, 'my_shortcode' );
// Variables to be used
$vendor_value = $atts['vendor'];
$value1 = $atts['thekey1']; // the value from "thekey1" in the url
$value2 = $atts['thekey2']; // the value from "thekey2" in the url
// Your code … / …
if( ! empty( $value1 ) )
$value1 = ' | Value 1: ' . $value1;
if( ! empty( $value2 ) )
$value2 = ' | Value 2: ' . $value2;
// Output: Always use return (never echo or print)
return '<p>Vendor: ' . $vendor_value . $value1 . $value2 . '<p>';
}
add_shortcode("my_shortcode", "this_is_my_shortcode");
}
代码进入活动子主题(或主题)的 function.php 文件中。测试和工作。
用法:
http://www.example.com/your-page/?thekey1=document1&thekey2=document2
&
字符分隔)[my_shortcode vendor="vendor1"]
echo do_shortcode( "[my_shortcode vendor='vendor1']" );
您将获得生成的 html 输出:
<p>Vendor: vendor1 | Value 1: document1 | Value 2: document2</p>
同意,与 Derek 一样,这个问题还很不清楚。
据我了解,您想提取在包含您的简码的页面的 URL 上传递的参数(比如“供应商”参数),并让简码参数可以动态地获取这个值?
如果是这种情况,那就没有意义了:短代码用于生成页面的代码(HTML、JavaScript、.. 在浏览器中运行的任何内容),并且在生成的页面中完全消失,这意味着您不能有不同的行为根据 URL 参数的值..除非您的短代码生成包含一些“供应商”变量的代码(JavaScript),该变量可以从参数中获取其值,并反过来生成一些东西(HTML、SVG ......),简而言之,某种棘手的代码..