Настраиваемый шорткод WordPress частично работает, но - PullRequest
0 голосов
/ 29 января 2020

У меня странная проблема, я пытаюсь создать короткий код, который работает следующим образом:

  • Если пользователь вставляет его в WordPress, он возвращает значения по умолчанию (это не так работает)

    [cta type = "test"]

  • Если пользователь вставляет его, но редактирует некоторые значения, он возвращает эти значения (это работает)

    [cta type = "test" title = "все работает"]

Это код, над которым я пытаюсь работать:

    function cta($atts) {
  $atts = shortcode_atts( array(
    'type' => '',
    'title' => '',
    'subtitle' => '',
    'url' => '',
  ), $atts,
        'cta' );

  switch( $atts[ 'type' ] ) {
    case 'test':
      $title = 'title test default';
      $subtitle = 'default text';
      $url = 'https://www.example.com/';
      break;
  }

return '
<div class="cta-title">' . $atts['title'] . '</div>
<div class="cta-subtitle">' . $atts['subtitle'] . '</div>
';
    return;
;}
add_shortcode('cta', 'cta');

Может кто-нибудь указать мне в правильном направлении? Спасибо

1 Ответ

1 голос
/ 29 января 2020

Просто проверьте, вводит ли пользователь какое-либо значение. Если не подать значение по умолчанию.

function cta($atts)
{
    $atts = shortcode_atts(array(
        'type' => '',
        'title' => '',
        'subtitle' => '',
        'url' => '',
    ), $atts, 'cta');

    switch ($atts['type']) {
        case 'test':
            $title = (isset($atts['title']) && !empty($atts['title'])) ? $atts['title'] : 'title default';
            $subtitle = (isset($atts['subtitle']) && !empty($atts['subtitle'])) ? $atts['subtitle'] : 'subtitle default';
            $url = 'https://www.example.com/';
            break;
    }

    $output = '<div class="cta-title">' . $title . '</div>';
    $output .= '<div class="cta-subtitle">' . $subtitle . '</div>';

    return $output;
}

add_shortcode('cta', 'cta');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...