Передать переменные в шорткод из URL в WordPress

Я сделал простой плагин WP, который получит некоторые документы от calameo.com и представить их в хорошей форме. Я сделал заказ короткий номер для этого. Давайте назовем это «Shortcode»…

у меня будет [Shortcode vendor=vendor1] показывать только документы, связанные с
продавец, и я знаю, как это сделать.

Что мне нужно сделать, это передать значения аргументов из URL в шорткод но я еще не нашел способ сделать это.

Любая помощь приветствуется.

1

Решение

Договорились, с Дереком, вопрос совершенно неясный.

Насколько я понимаю, вы хотите извлечь параметры, переданные по URL страницы, которая содержит ваш шорткод (скажем, параметр ‘vendor’), и сделать так, чтобы параметры шорткода могли принимать это значение динамически?

Если это так, то это не имеет смысла: шорткоды используются для генерации кода вашей страницы (HTML, JavaScript, … независимо от того, что выполняется в браузере) и полностью исчезли на получающейся странице, что означает, что вы не можете вести себя иначе по значению параметра URL. если Ваш шорткод генерирует код (JavaScript), который содержит некоторую переменную ‘vendor’, которая может взять свое значение из параметра, и, в свою очередь, сгенерировать что-то (HTML, SVG….), вкратце, какой-то хитрый код ..

0

Другие решения

Чтобы передать некоторые переменные из 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 вашей активной дочерней темы (или темы). проверено и работает.

ИСПОЛЬЗОВАНИЕ:

  • URL, как: http://www.example.com/your-page/?thekey1=document1&thekey2=document2
    (Каждая пара ключ / значение аргумента отделяется & персонаж)
  • Шордкод:
    • В WordPress странице / пост текстовом редакторе: [my_shortcode vendor="vendor1"]
    • В коде php: echo do_shortcode( "[my_shortcode vendor='vendor1']" );

Вы получите как сгенерированный вывод html:

<p>Vendor: vendor1 | Value 1: document1 | Value 2: document2</p>
0

По вопросам рекламы [email protected]