Что не так с этой функцией вывода всплывающей подсказки Wordpress? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть плагин WordPress, который я пытаюсь исправить, очень старый, и автор не отвечает. У плагина было много устаревшего кода, который я уже исправил.Плагин представляет собой всплывающую подсказку в виде короткого кода.

Я сталкиваюсь с этой проблемой: после активации плагин добавляет (выводит) это ко всем сообщениям:

<html><body><p>

Неважно, если вы напишете что-то в посте или нет, пост выведет приведенный выше HTML.

Что-то не так в этой функции вывода, которая делает это возможным?это функция вывода:

открытая функция box_tooltips_shortcode ($ atts, $ text) {

    extract(shortcode_atts(
    array(
        "header" =>             "",
        "content" =>            "Tooltip Content",
        "style" =>              $this->default_options["style"],
        "position" =>           $this->default_options["position"],
        "width" =>              "",
        "custom_css_class" =>   "",
        "custom_css" =>         "",
        "custom_content_css" => "",
        "focus" =>              "",
        "tag" =>                $this->default_options["tag"],
        "delay" =>              "",
        "cursor" =>             "",
        "event" =>              "",
        "attr" =>               "",
        ),
        $atts, $text
    ));

    // Prepare atributes:
    if ($focus == 1) {
        $parts = explode("_", $position);
        array_splice($parts, 1, 0, "focus");
        $position = implode("_", $parts);
    }
    $position = "qlabs_tooltip_" . $position;
    $delay = $delay != "" && $delay != 0 ? " delay_" . $delay : "";
    $style = " qlabs_tooltip_" . $style;
    $cursor = $cursor != "" ? " cursor_" . $cursor : "";
    $event = $event != "" ? " event_" . $event : "";
    $custom_css_class = $custom_css_class != "" ? " " . $custom_css_class : "";
    $custom_content_css = $custom_content_css != "" ? " " . $custom_content_css : "";

    // Generate output
    $output = "<{$tag} class='{$position}{$style}{$delay}{$cursor}{$custom_css_class}{$event}' style='{$custom_css}' {$attr} aria-haspopup='true'>";
    $output .= $text;
    $output .= "<span " . ($width != "" ? "style='width: {$width}; {$custom_content_css}' " : "") . " >";
    $output .= $header != "" ? "<strong>{$header}</strong>" : "";
    $output .= $content;
    $output .= "</span>";
    $output .= "</{$tag}>";

    // Check if click event is selected, required for loading JS code
    if( strpos($event, 'click')!==false  ) {
        global $box_tooltips_js;
        $box_tooltips_js = true;
    } 

    return $output;
}

Плагин выводит этот HTML-код на все сообщения без причины: <html><body><p>

Его шорткод неправильно отображает только текст шорткода.

...