Я сделал простой плагин WP, который получит некоторые документы от calameo.com
и представить их в хорошей форме. Я сделал заказ короткий номер для этого. Давайте назовем это «Shortcode»…
у меня будет [Shortcode vendor=vendor1]
показывать только документы, связанные с
продавец, и я знаю, как это сделать.
Что мне нужно сделать, это передать значения аргументов из URL в шорткод но я еще не нашел способ сделать это.
Любая помощь приветствуется.
Договорились, с Дереком, вопрос совершенно неясный.
Насколько я понимаю, вы хотите извлечь параметры, переданные по URL страницы, которая содержит ваш шорткод (скажем, параметр ‘vendor’), и сделать так, чтобы параметры шорткода могли принимать это значение динамически?
Если это так, то это не имеет смысла: шорткоды используются для генерации кода вашей страницы (HTML, JavaScript, … независимо от того, что выполняется в браузере) и полностью исчезли на получающейся странице, что означает, что вы не можете вести себя иначе по значению параметра URL. если Ваш шорткод генерирует код (JavaScript), который содержит некоторую переменную ‘vendor’, которая может взять свое значение из параметра, и, в свою очередь, сгенерировать что-то (HTML, SVG….), вкратце, какой-то хитрый код ..
Чтобы передать некоторые переменные из 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>