특정 게시물 또는 특정 currentCategory의 css를 제어하고 싶습니다.

처음에는 간단하게

게시물에 style 태그나 자바스크립트를 넣어서 css제어를 하려고 했는데 보안 때문에 막혀있더라구요(https://www.cosmosfarm.com/threads/document/2594)

Q. 관리자만 사용하는 게시판인데 제한을 풀 수 있는 방법이 있나요?

 

or

 

처음 방법의 해결책을 못 찾아서

document.php에 스크립트를 추가 해서 css를 제어하긴 했는데

css 수정을 원하는 임의의 카테고리나 글을 특정하는 법을 모르겠습니다

<?php if($content->category1):?>
<script type="text/javascript">
document.body.style.backgroundImage = 'none';
</script>
<?php endif?>

Q. if문으로 카테고리1, 2 까지는 특정하겠는데, 사실 의미 없고 임의의 글이나 카테고리를 특정하고 싶은데 완전 초보라 방법을 모르겠습니다.  

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    올려주신 링크처럼 게시글 본문에 스크립트를 삽입하는 건

    보안상의 문제로 코드를 수정하는 건 권장드리지 않습니다.

     

    게시글 카테고리에 따라 body 태그에 별도의 CSS 코드를 적용하고 싶으신 건지요?

    body_class 필터를 활용해보시는 건 어떠신지요?

    아래의 코드를 활용해보세요.

    add_filter('body_class', 'body_class_20210521', 10, 2);
    function body_class_20210521($classes, $class){
    	$uid = isset($_GET['uid']) ? intval($_GET['uid']) : '';
    	if($uid){
    		$content = new KBContent();
    		$content->initWithUID($uid);
    		
    		if($content->category1 == 'A'){
    			$classes[] = 'yellow';
    		}
    		else if($content->category1 == 'B'){
    			$classes[] = 'blue';
    		}
    	}
    	return $classes;
    }

    위의 코드에서 $content->category1 == 'A' 부분과 $content->category1 == 'B' 부분은

    실제 카테고리1로 적용해보세요.

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

     

    그 다음 워드프레스 관리자 -> 외모 -> 사용자 정의하기 -> CSS 입력 필드에

    아래의 코드처럼 추가해보세요.

    body.yellow { background-color: yellow; }
    body.blue { background-color: blue; }

    위의 코드에서 body.yellow와 body.blue 부분은 body_class 필터에서 추가한

    $classes[] = 'yellow' 코드와 $classes[] = 'blue' 코드로 인해

    게시글 카테고리에 따라 body 태그에 클래스가 추가됩니다.

     

    위와 같이 적용한다면

    게시글의 카테고리가 A인 게시글 본문 페이지에서 body 태그의 색상이 노란색으로 표시되며

    게시글의 카테고리가 B인 게시글 본문 페이지에서 body 태그의 색상이 파란색으로 표시됩니다.

     

    추가로 궁금하신 사항은 댓글로 이어서 남겨주시길 부탁드립니다.

    고맙습니다.

  • category1 == '(원하는 카테고리)' 로 특정 할 수 있었군요

    감사합니다. 덕분에 해결 했습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요