Я пытаюсь написать короткий код Wordpress в php. Тем не менее, у меня возникли проблемы с передачей значений из короткого кода в отображаемый контент.Передача значений в короткий код Wordpress
function tweet($atts) {
extract(shortcode_atts(array(
'id' => '',
'width' => '520',
'height' => '600',
'theme' => 'light',
'link_color' => '#333333',
'border_color' => '#e8e8e8',
'header' => 'true',
'footer' => 'true',
'border' => 'true',
'scrollbar' => 'true',
'transparent' => 'false',
'tweet_limit' => '10',
), $atts));
return '<a class="twitter-timeline"
data-widget-id="<?php echo $this->id; ?>"
width="<?php echo $this->width; ?>"
height="<?php echo $this->height; ?>"
data-theme="<?php echo $this->theme; ?>"
data-link-color="<?php echo $this->linkColor; ?>"
data-border-color=<?php echo $this->borderColor; ?>
data-chrome="<?php echo $this->chrome; ?>"
data-tweet-limit="<?php echo $this->tweetLimit; ?>"
lang="<?php echo $this->lang; ?>"></a>';
}
add_shortcode('twitter', 'tweet');
Если I жесткие значения кода в таких областях, как, data-widget-id
, то он будет работать. . Однако, если я просто пишу [twitter id="707980844590342144"]
значение не получить передается в
Похоже, что-то вдоль этих линий может быть решение, но я не смог получить его работу до сих пор:
$this->id = $id;
$this->width = $width;
$this->height = $height;
$this->theme = $theme;
$this->linkColor = $link_color;
$this->borderColor = $border_color;
$this->tweetLimit = $tweet_limit;
$this->chrome = "";
$this->chrome .= ($header == 'false') ? 'noheader ' : '';
$this->chrome .= ($footer == 'false') ? 'nofooter ' : '';
$this->chrome .= ($borders == 'false') ? 'noborders ' : '';
$this->chrome .= ($scrollbar == 'false') ? 'noscrollbar ' : '';
$this->chrome .= ($transparent == 'true') ? 'transparent ' : '';
Удивительно, большое вам спасибо! –