Wsparcie » Wtyczki » style z wtyczek

  • Witam serdecznie,

    Czy mógłby mi ktoś pomóc z nietypowym? problemem? Chodzi o to, że po zainstalowaniu kilku wtyczek min. „Huge It Slider” walidacja w3c pokazuje błędy w umiejscowieniu styli. Komunikat z błędem umieszczam poniżej:

    ——————————————————————————————-
    Error: Element style not allowed as child of element header in this context. (Suppressing further errors from this subtree.)

    From line 3872, column 1; to line 3872, column 7

    </script>↩<style>↩↩.img

    Contexts in which element style may be used:
    Where metadata content is expected.
    In a noscript element that is a child of a head element.
    Content model for element header:
    Flow content, but with no main element descendants, or header, footer elements that are not descendants of sectioning content which is a descendant of the header.
    ——————————————————————————————-

    Styl dla tej przykładowej wtyczki jest umiejscowiony bezpośrednio w pliku wp-content/plugins/slider-image/slider.php

    Czy można wyciąć style z pliku i podlinkować je w <head> szablonu do zewnętrznego pliku css?
    Nie wiem jak ugryźć ten problem, obniża on jakość wykonania szablonu 🙁

Viewing 10 replies - 1 through 10 (of 10 total)
  • Zobacz jakimi hookami wtyczka dodaje te style i wyłącz te hooki a następnie zrób to swoim hookiem.

    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    Dzięki za pomoc. System WordPress jest dla mnie nowy, czy byłbyś tak miły po powiedziałbyś mi jak się to powinno robić? Chociaż jakaś kolejna podpowiedź. Znajduję <style>…</style> w miejscu gdzie nie powinien się znajdować i wycinam i wklejam w to miejsce hook do zewnętrznego pliku css? Tak?

    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    Nie znam się na php pewnie dlatego ciężko mi to zrobić.
    W jednej z wtyczek w pliku .php są umiejscowione style z elementami php jak poniżej:

    ————————————————————————
    .
    .
    .
    $slideshow_title_position = explode(’-’, trim($paramssld[’slider_title_position’]));
    $slideshow_description_position = explode(’-’, trim($paramssld[’slider_description_position’]));
    ?>

    <style>
    /***<add>***/
    #huge_it_loading_image_<?php echo $sliderID; ?> {
    height:<?php echo $sliderheight; ?>px;
    width:<?php echo $sliderwidth; ?>px;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    }
    #huge_it_loading_image_<?php echo $sliderID; ?>.display {
    display: table-cell;
    }
    #huge_it_loading_image_<?php echo $sliderID; ?>.nodisplay {
    display: none;
    }
    #huge_it_loading_image_<?php echo $sliderID; ?> img {
    margin: auto 0;
    width: 20% !important;

    }
    .
    .
    .
    </style>
    —————————————————————————

    Jak należy podmienić taki fragment kodu? Tworzę plik .php który znajduje się w katalogu wtyczki i tak wklejam ten fragment kodu i linktuje hook do niego?

    Podaj link do wtyczki lub do strony.

    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    Witaj,

    To ta wtyczka powoduje ten bałagan: https://wordpress.org/plugins/slider-image/

    swoje style pakuje do <body>

    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    Jeszcze dodam że pracuję na child theme na bazie szablonu Accelerate

    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    No bo w tych stylach css są odwołania .php, jak należałoby podpiąć kotwicę, tak aby wtyczka zaciągała style z odwołaniami .php?

    Niestety nic w tym przypadku się nie da zrobić gdyż wtyczka nie posiada żadnych zaczepów, ani akcji ani filtra, do których można by było się podpiąć. Style generowane są z poziomu klasy.

    Oto cały jej kod:

    class Hugeit_Slider_Template_Loader {
    	public function load_front_end(Hugeit_Slider_Slider $slider) {
    		$slider_id = $slider->get_id();
    		$show_loading_icon = $slider->get_show_loading_icon();
    		$loading_icon_type = Hugeit_Slider_Options::get_loading_icon_type();
    		$slides = $slider->get_slides();
    
    		if ($slider->get_random()) {
    			shuffle($slides);
    		}
    
    		return self::render(
    			HUGEIT_SLIDER_FRONT_TEMPLATES_PATH . DIRECTORY_SEPARATOR . 'slider.php',
    			array(
    				'slider' => $slider,
    				'slider_id' => $slider_id,
    				'show_loading_icon' => $show_loading_icon,
    				'loading_icon_type' => $loading_icon_type,
    				'slides' => $slides
    			),
    			HUGEIT_SLIDER_FRONT_TEMPLATES_PATH . DIRECTORY_SEPARATOR . 'style'. DIRECTORY_SEPARATOR. 'style.css.php'
    		);
    	}
    
    	public static function render($html_path, $params = array(), $css_path='') {
    		ob_start();
    		ob_implicit_flush(false);
    
    		extract($params, EXTR_OVERWRITE);
    
    		require $html_path;
    		if ( $css_path ) {
    			require $css_path;
    		}
    
    		return ob_get_clean();
    	}
    }
    Thread Starter luknijdwarazy

    (@luknijdwarazy)

    Dzięki za pomoc. Pewnie bym długo jeszcze z tym się gimnastykował zanim bym stwierdził, że nie da rady tego zrobić… Pozdrawiam

    Paweł

    (@mrpauloen)

    Brak zaczepów we wtyczce nie oznacza, że nie może ona wstawiać skryptów do nagłówka. Oznacza to, że należy ją zmodyfikować, ale wtedy jesteś narażony na utratę zmian podczas aktualizacji.
    Masz dwa wyjścia:
    – zmienić nazwę katalogu wtyczki na własną (wtedy aktualizacja nie zadziała)
    – napisać do jej autora aby przerobił tę klasę i dodał zaczepy lub dał możliwość wyboru miejsca wstawiania skryptów.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Temat ‘style z wtyczek’ jest zamknięty na nowe odpowiedzi.