add_stylesheet의 위치변경
본문
add_stylesheet로 로드되는 CSS외에 별도로 add_stylesheet함수를 쓰지 않고 소스상에 맨위에 기술해도 add_stylesheet를 쓰는 CSS들이 실제로 HTML상에서는 먼저 선언되어 버립니다.
이거 add_stylesheet 함수와 상관없이 add_stylesheet 함수보다 먼저 CSS나 JS를 로드하려면 꼭 add_stylesheet함수 안에 우선순위를 줘서 기술해야 합니까??
<head> </head>안에서 add_stylesheet함수와 상관없이 add_stylesheet 보다 먼저 css를 로드하고 싶은데 add_stylesheet안에는 기술하기 싫을때는 어찌해야 할까요?
답변 4
CSS가 굳이 최상단에 위치해야할 필요가 있는건가요?
어차피 오버라이딩하는것이니 이후에 선언되도 상관없을것 같은데요
그게 아니라면 아래 코드를 수정해야할것 같습니다.
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
add_stylesheet는 특정 태그를 찾아 위치를 정하기 때문에 원하시는 방향으로 하시려면 해당함수의 정규식을 적절하게 변경하시거나 순서가 필요한 css를 link테그 대신 add_stylesheet함수를 태워야 합니다.
해당함수는 /lib/common.lib.php파일에 있고 해당 정규식은 run 함수에 포함되어있습니다.
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
2번째 매개변수가 순서네요. 조정해 보세요.
function add_stylesheet($stylesheet, $order=0)
답변을 작성하시기 전에 로그인 해주세요.