В вашей функции шорткода отсутствует аргумент. Список параметров для всех функций шорткода: ($attributes, $content=null)
. Это означает, что первым параметром, переданным Wordpress, будут атрибуты (независимо от того, есть они у вас или нет), а содержимое между тегами шорткода - второй .
Ваш код пытается чтобы использовать первый параметр как $content
, но поскольку WP фактически сначала передает атрибуты, в вашем случае это пусто.
Вам просто нужно изменить свою функцию, чтобы она соответствовала определенному списку параметров, чтобы включить оба аргумента (даже если у вас нет атрибутов), например:
// $attributes argument first, $content second
function rebrandly_shortcode( $attributes, $content = null ) {
// do your stuff here
}
FYI
Атрибуты шорткода - это информация, которую вы можете добавить в шорткод, который будет использоваться в функции, например, класс, какой-то текст для включения или что-нибудь еще.
Если мы возьмем ваш код в качестве примера, вы можете передавать разные домены коротких ссылок на разных страницах следующим образом (очевидно, это не практический пример, но он показывает, как это работает!)
[shortlink domain="rebrand.ly"]
Затем функция может извлечь атрибуты, которые будут использоваться следующим образом:
function rebrandly_shortcode( $attributes, $content = null ) {
// extract the apikey attribute into a variable called $domain
extract( shortcode_atts( array(
'domain' => '' // you could also give it a default value here instead of ''
), $attributes ) );
// use your domain parameter
$domain_data["fullName"] = $domain;
// do the rest of your stuff
}