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가 굳이 최상단에 위치해야할 필요가 있는건가요?
어차피 오버라이딩하는것이니 이후에 선언되도 상관없을것 같은데요
그게 아니라면 아래 코드를 수정해야할것 같습니다.
</p>
<p> /*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);</p>
<p> /*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
2번째 매개변수가 순서네요. 조정해 보세요.
function add_stylesheet($stylesheet, $order=0)
댓글을 작성하려면 로그인이 필요합니다.
add_stylesheet는 특정 태그를 찾아 위치를 정하기 때문에 원하시는 방향으로 하시려면 해당함수의 정규식을 적절하게 변경하시거나 순서가 필요한 css를 link테그 대신 add_stylesheet함수를 태워야 합니다.
해당함수는 /lib/common.lib.php파일에 있고 해당 정규식은 run 함수에 포함되어있습니다.
</p>
<p> /*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
댓글을 작성하려면 로그인이 필요합니다.
그냥
<link rel="stylesheet" href="https://sir.kr/css/default.css?v=42" rel="noreferrer noopener" target="_blank">//sir.kr/css/default.css?v=42">
이소스를 박아버리시면 함수와 상관없이 출력하실 수 있습니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인