Использование шорткода WordPress для добавления html атрибутов - PullRequest
1 голос
/ 19 марта 2020

Я изменяю тему WordPress. Я хочу иметь возможность открыть ссылку на новой вкладке с помощью шорткода.

// add shortcode for About Our Charity Section
function theme_about_charity($atts, $content = null){
    extract(shortcode_atts(array(
        'title' => '',
        'icon' => '',
        'link' => '', 
        'last'  => '',
        'newTab' => ''
    ),$atts));
        return ' <div class="about-box" id="'.(($last == 'yes') ? 'last' : '').'">
                    <h3><i class="fa fa- '.$icon.'"></i><a href="'.$link.'" target="'.($newTab == 'yes')? '_blank' : '_self' . '">' .$title.'</a></h3>
                    <p>'.$content.'</p>                             
                </div>';
    }
add_shortcode('about_charity','theme_about_charity');

когда пользователь создает шорткод:

[about_charity icon="icon" title="title" link="#" newTab="yes" ]lorem ipsum[/about_charity]

Сейчас код просто печатает "_blank" на моей веб-странице.

Код работает для изменения атрибута id элемента div, но не целевого атрибута ссылки. Может кто-нибудь объяснить это и предложить предложение о том, как сделать эту работу? Спасибо!

1 Ответ

0 голосов
/ 20 марта 2020

Мы обнаружили две ошибки

Мы исправили и обновили код, как показано ниже. Замените нижеприведенную функцию и шорткод.

Функция, как показано ниже:

// add shortcode for About Our Charity Section
function theme_about_charity($atts, $content = null){
    extract(shortcode_atts(array(
        'title' => '',
        'icon' => '',
        'link' => '', 
        'last'  => '',
        'newtab' => ''
    ),$atts));
    return '<div class="about-box" id="'.(($last == 'yes') ? 'last' : '').'">
                <h3><i class="fa fa- '.$icon.'"></i><a href="'.$link.'" target="'.(($newtab == 'yes') ? '_blank' : '_self') . '">' .$title.'</a></h3>
                <p>'.$content.'</p>                             
            </div>';
}
add_shortcode('about_charity','theme_about_charity');

Шорткод, как показано ниже:

[about_charity icon="icon" title="title1" link="https://www.google.com" newtab="yes" ]lorem ipsum[/about_charity]

Надеюсь, это сработает для вас, потому что мы попробовали, и у меня получилось.

Спасибо!

...