게시판 답변이 생성됐습니다

15 글 보임 - 1에서 15 까지 (총 34 중에서)
  • Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1415

    polyglot.php 파일을 utf-8로 저장하실 때 유니코드 표식(BOM)을 함께 저장하면 위의 오류가 나타날 수 있습니다.

    다음의 내용은 제 블로그에 썼던 내용인데 참고하시기 바랍니다:

    Headers already sent … 오류의 해결

    워드프레스 사용자들뿐만 아니라 다른 프로그램 사용자들도 자주 겪는 Headers already sent … 오류는 주로 플러그인 파일과 관련하여 발생한다. 이 오류가 발생할 경우에는 다음의 경우 중 어느 하나에 속한다:

    1. 해당 플러그인 파일의 첫 문장은 <?php 로 시작할텐데, 이 <?php 앞에 공백을 두면 이 오류가 발생할 수 있다.
    2. 해당 플러그인 파일의 마지막 문장은 ?> 로 끝날텐데, 이 ?> 뒤에 공백을 남기면 이 오류가 발생할 수 있다.
    3. 해당 플러그인 파일을 저장할 때 노트패드나 편집기에서 utf-8 인코딩 형식으로 저장하면 이런 결과가 발생할 수 있다.

    위 사유들 중에서 utf-8로 저장한다고 해서 무조건 이 오류가 발생하는 것은 아니다. 대부분의 편집기는 파일을 utf-8 형식으로 저장할 때 그 파일이 유니코드로 인코딩되었음을 알리는 표식(Unicode Signature, 혹은 BOM이라고 함. utf-8 문서의 처음 2 bytes에 추가되는 0xFF 0xFE를 말함)을 문서의 맨 처음에 보이지 않게 추가한다. 노트패드 역시 이 표식을 추가하여 저장한다. 그 결과, 파일을 열어보면 이 표식은 보이지 않지만 실제로는 <?php 앞에 이 표식이 위치해 있는 셈이다.

    이런 이유에서, 노트패드나 기타 편집기로 플러그인 파일을 utf-8로 저장하여 실행해 보면 어김없이 Headers already sent … 오류가 발생하게 된다. 이 오류가 발생하는 좀더 근본적인 이유는 PHP가 이 utf-8 BOM을 무시하지 않고 하나의 문자로 읽기 때문이다. 이 문제를 해결하려면 파일을 utf-8 형식으로 저장할 때 utf-8 BOM을 추가하지 말아야 한다. 그러나 노트패드는 파일을 utf-8 형식으로 저장할 때 무조건 BOM을 추가하므로 노트패드로는 해결 불가능하다.

    그러나, 좀더 고급인 편집기에서는 “Unicode Signature(BOM) 추가 여부”를 옵션으로 설정할 수 있다. 주로 파일저장과 관련한 옵션에 이 설정항목이 있다. 대부분의 경우라면 기본값으로 Unicode Signature를 추가하도록 설정되어 있으므로 이를 변경해야 한다. 그리고 나서 파일을 utf-8 인코딩 형식으로 저장해야 한다.

    나같은 경우에는 주로 EmEditor를 편집기로 사용하고 있는데, 이 편집기의 경우 Tools > Properties for All Configurations > File > Saving … > Add a Unicode Signature(BOM)의 체크를 해제하면 된다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1421

    polyglot.php 파일을 utf-8로 저장하실 때 유니코드 표식(BOM)을 함께 저장하면 위의 오류가 나타날 수 있습니다.

    다음의 내용은 제 블로그에 썼던 내용인데 참고하시기 바랍니다:

    Headers already sent … 오류의 해결

    워드프레스 사용자들뿐만 아니라 다른 프로그램 사용자들도 자주 겪는 Headers already sent … 오류는 주로 플러그인 파일과 관련하여 발생한다. 이 오류가 발생할 경우에는 다음의 경우 중 어느 하나에 속한다:

    1. 해당 플러그인 파일의 첫 문장은 <?php 로 시작할텐데, 이 <?php 앞에 공백을 두면 이 오류가 발생할 수 있다.
    2. 해당 플러그인 파일의 마지막 문장은 ?> 로 끝날텐데, 이 ?> 뒤에 공백을 남기면 이 오류가 발생할 수 있다.
    3. 해당 플러그인 파일을 저장할 때 노트패드나 편집기에서 utf-8 인코딩 형식으로 저장하면 이런 결과가 발생할 수 있다.

    위 사유들 중에서 utf-8로 저장한다고 해서 무조건 이 오류가 발생하는 것은 아니다. 대부분의 편집기는 파일을 utf-8 형식으로 저장할 때 그 파일이 유니코드로 인코딩되었음을 알리는 표식(Unicode Signature, 혹은 BOM이라고 함. utf-8 문서의 처음 2 bytes에 추가되는 0xFF 0xFE를 말함)을 문서의 맨 처음에 보이지 않게 추가한다. 노트패드 역시 이 표식을 추가하여 저장한다. 그 결과, 파일을 열어보면 이 표식은 보이지 않지만 실제로는 <?php 앞에 이 표식이 위치해 있는 셈이다.

    이런 이유에서, 노트패드나 기타 편집기로 플러그인 파일을 utf-8로 저장하여 실행해 보면 어김없이 Headers already sent … 오류가 발생하게 된다. 이 오류가 발생하는 좀더 근본적인 이유는 PHP가 이 utf-8 BOM을 무시하지 않고 하나의 문자로 읽기 때문이다. 이 문제를 해결하려면 파일을 utf-8 형식으로 저장할 때 utf-8 BOM을 추가하지 말아야 한다. 그러나 노트패드는 파일을 utf-8 형식으로 저장할 때 무조건 BOM을 추가하므로 노트패드로는 해결 불가능하다.

    그러나, 좀더 고급인 편집기에서는 “Unicode Signature(BOM) 추가 여부”를 옵션으로 설정할 수 있다. 주로 파일저장과 관련한 옵션에 이 설정항목이 있다. 대부분의 경우라면 기본값으로 Unicode Signature를 추가하도록 설정되어 있으므로 이를 변경해야 한다. 그리고 나서 파일을 utf-8 인코딩 형식으로 저장해야 한다.

    나같은 경우에는 주로 EmEditor를 편집기로 사용하고 있는데, 이 편집기의 경우 Tools > Properties for All Configurations > File > Saving … > Add a Unicode Signature(BOM)의 체크를 해제하면 된다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1395

    iG_Syntax_Hiliter가 3.5로 버전업이 되면서 파일트리가 변경되었네요.
    제가 사용하는 3.1 버전은 css 폴더가 별도로 없었는데,
    그 이후에 css 폴더를 별도로 만들고 그 안에 css 파일을 넣어두었어요.

    그래서, larsulrich 님께서 사용하시는 버전에서는 syntax_hilite_css.css 파일을
    /wp-content/plugins/ig_syntax_hilite/css/syntax_hilite_css.css 에 두셔야 합니다.

    님의 블로그로 가 보니까, 이 위치에 css 파일이 존재하지 않습니다.

    파이어폭스의 Web Developer Toolbar를 이용해서
    larsulrich 님의 블로그에 제가 말씀드린 코드를 적용해 보니까 잘 됩니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1385

    iG_Syntax_Hiliter가 3.5로 버전업이 되면서 파일트리가 변경되었네요.
    제가 사용하는 3.1 버전은 css 폴더가 별도로 없었는데,
    그 이후에 css 폴더를 별도로 만들고 그 안에 css 파일을 넣어두었어요.

    그래서, larsulrich 님께서 사용하시는 버전에서는 syntax_hilite_css.css 파일을
    /wp-content/plugins/ig_syntax_hilite/css/syntax_hilite_css.css 에 두셔야 합니다.

    님의 블로그로 가 보니까, 이 위치에 css 파일이 존재하지 않습니다.

    파이어폭스의 Web Developer Toolbar를 이용해서
    larsulrich 님의 블로그에 제가 말씀드린 코드를 적용해 보니까 잘 됩니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1393

    ig_syntax_hilite/syntax_hilite_css.css 파일에서 .syntax_hilite 클래스의 overflow 속성으로 조정합니다. 가령 다음처럼요:

    .syntax_hilite {
            overflow: auto;
    }

    overflow의 속성들에 대해서는 W3C의 http://www.w3schools.com/css/pr_pos_overflow.asp를 참조하세요.

    그리고 overflow의 속성과 연계된 것으로 white-space 속성이 있습니다. 이 속성도 아마 적절하게 설정하셔야 할 겁니다. 다음처럼요:

    .syntax_hilite {
            white-space: nowrap;
            overflow: auto;

    위의 CSS 설정 사항은 "한 줄의 코드가 길더라도 그 코드 줄을 접지 말고 주욱 펴되, 컨테이너(div, table 등)의 넓이를 초과하면 네비게이션 바를 자동으로 나타나게 하라"는 내용이 되겠습니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1383

    ig_syntax_hilite/syntax_hilite_css.css 파일에서 .syntax_hilite 클래스의 overflow 속성으로 조정합니다. 가령 다음처럼요:

    .syntax_hilite {
            overflow: auto;
    }

    overflow의 속성들에 대해서는 W3C의 http://www.w3schools.com/css/pr_pos_overflow.asp를 참조하세요.

    그리고 overflow의 속성과 연계된 것으로 white-space 속성이 있습니다. 이 속성도 아마 적절하게 설정하셔야 할 겁니다. 다음처럼요:

    .syntax_hilite {
            white-space: nowrap;
            overflow: auto;

    위의 CSS 설정 사항은 "한 줄의 코드가 길더라도 그 코드 줄을 접지 말고 주욱 펴되, 컨테이너(div, table 등)의 넓이를 초과하면 네비게이션 바를 자동으로 나타나게 하라"는 내용이 되겠습니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #965

    워드프레스 기본설정상
    손 봐야 할(moderation) 답글을 쓴 사람은 그 답글을 볼 수 있습니다.
    다만, 동일한 IP에서만 그 답글을 볼 수 있습니다.

    그리고 그 답글을 단 사람의 이름 옆에

    Your comment is awaiting moderation

    이라는 경고문이 함께 출력됩니다.

    나머지 사람들은 이 경고문도 답글도 볼 수 없고요.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #973

    워드프레스 기본설정상
    손 봐야 할(moderation) 답글을 쓴 사람은 그 답글을 볼 수 있습니다.
    다만, 동일한 IP에서만 그 답글을 볼 수 있습니다.

    그리고 그 답글을 단 사람의 이름 옆에

    Your comment is awaiting moderation

    이라는 경고문이 함께 출력됩니다.

    나머지 사람들은 이 경고문도 답글도 볼 수 없고요.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1124

    이것을 원천적으로 수정하려면 워드프레스 내장함수의 정의를 수정해야 합니다.
    이것은 현실적으로 어렵기 때문에 (복잡한 정규식을 알아야 하거든요) 임시방편으로

    &nbsp;

    &nbsp;

    &nbsp;

    위와 같이 공백문자 &nbsp; 를 추가하면서 줄바꿈을 하시면 됩니다. 위의 경우에는 모두 5줄이 줄바꿈이 됩니다. 혹은,

    <p>&nbsp;</p>

    <p>&nbsp;</p>

    <p>&nbsp;</p>

    위와 같은 식으로 해도 되고요. 결과는 동일합니다.

    그런데, 다음처럼

    &nbsp;
    &nbsp;
    &nbsp;

    로 쓴다면? 네, 3줄이 줄바꿈이 됩니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1126

    이것을 원천적으로 수정하려면 워드프레스 내장함수의 정의를 수정해야 합니다.
    이것은 현실적으로 어렵기 때문에 (복잡한 정규식을 알아야 하거든요) 임시방편으로

    &nbsp;

    &nbsp;

    &nbsp;

    위와 같이 공백문자 &nbsp; 를 추가하면서 줄바꿈을 하시면 됩니다. 위의 경우에는 모두 5줄이 줄바꿈이 됩니다. 혹은,

    <p>&nbsp;</p>

    <p>&nbsp;</p>

    <p>&nbsp;</p>

    위와 같은 식으로 해도 되고요. 결과는 동일합니다.

    그런데, 다음처럼

    &nbsp;
    &nbsp;
    &nbsp;

    로 쓴다면? 네, 3줄이 줄바꿈이 됩니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1002

    Static Front Page 플러그인 때문에 그런 듯하군요.

    저는 이 플러그인을 써보지는 않았지만,
    이 플로그인은 블러그 홈(Front Page)을 디스플레이하는 index.php 파일을
    다른 파일로 대체하는 것으로 알고 있습니다.

    아, 어려워라^^;;;

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1012

    Static Front Page 플러그인 때문에 그런 듯하군요.

    저는 이 플러그인을 써보지는 않았지만,
    이 플로그인은 블러그 홈(Front Page)을 디스플레이하는 index.php 파일을
    다른 파일로 대체하는 것으로 알고 있습니다.

    아, 어려워라^^;;;

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1000

    님의 블로그 소스를 보면, 포스트 내용을 구성하는 소스는 다음과 같습니다.

    <div class="post" id="post-258">
    <h2>[Live]Always - Bonjovi</h2>
       <div class="entrytext">
          <p> 포스트 내용</p>
       </div>
    </div>

    위의 코드에서 코멘트를 출력하는 소스가 없음을 알 수 있습니다. 원래는 <p>포스트 내용</p> 다음에 아래의 소스가 출력되어야 합니다.

    <p class="postmetadata">Posted in Category | Edit | 0 Comment</p>

    이 소스가 출력되지 않고 있는 이유는 앞글에서도 언급했다시피, 아래의 코드를 wp-content/themes/your theme/index.php 파일에서 삭제했기 때문입니다.

    <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>

    위의 소스를 템플릿 파일(테마파일) 폴더 내의 index.php에 추가하시기 바랍니다.

    다시 한번 말씀드리지만, 님께서 현재 쓰고 있는 테마는 default 테마가 아니라, 님의 워드프레스타이틀 명의나 관리자 명의의 테마일 수 있습니다. 이럴 경우에는 wp-content/themes/default/index.php 파일을 수정하는 것이 아니라, wp-content/themes/your theme/index.php 파일을 수정하셔야 합니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #1010

    님의 블로그 소스를 보면, 포스트 내용을 구성하는 소스는 다음과 같습니다.

    <div class="post" id="post-258">
    <h2>[Live]Always - Bonjovi</h2>
       <div class="entrytext">
          <p> 포스트 내용</p>
       </div>
    </div>

    위의 코드에서 코멘트를 출력하는 소스가 없음을 알 수 있습니다. 원래는 <p>포스트 내용</p> 다음에 아래의 소스가 출력되어야 합니다.

    <p class="postmetadata">Posted in Category | Edit | 0 Comment</p>

    이 소스가 출력되지 않고 있는 이유는 앞글에서도 언급했다시피, 아래의 코드를 wp-content/themes/your theme/index.php 파일에서 삭제했기 때문입니다.

    <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>

    위의 소스를 템플릿 파일(테마파일) 폴더 내의 index.php에 추가하시기 바랍니다.

    다시 한번 말씀드리지만, 님께서 현재 쓰고 있는 테마는 default 테마가 아니라, 님의 워드프레스타이틀 명의나 관리자 명의의 테마일 수 있습니다. 이럴 경우에는 wp-content/themes/default/index.php 파일을 수정하는 것이 아니라, wp-content/themes/your theme/index.php 파일을 수정하셔야 합니다.

    Avatar of GosingaGosinga
    Participant
    @Gosinga
    #998

    그럴리가요. 그림동화님 설명대로 뭔가가 빠져 있을 겁니다. 출력하고 싶으신 내용은 다음의 코드를 통해서 출력됩니다:

    <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>

    위 코드의 누락여부를 확인하시기 바랍니다. 위 코드가 있는데도 내용이 출력되지 않는다면 위 코드가 워드프레스 루프 안에 들어있는지 확인하시기 바랍니다. 즉,

    <?php if (have_posts()) : ?>
      <?php while (have_posts()) : the_post(); ?>

        . . .

        <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
        . . .

      <?php endwhile; ?>
    <?php endif; ?>

    위와 같은 식으로 워드프레스 루프 구조 안에 해당 코드가 삽입되어 있어야 제대로 출력됩니다.

    그리고, 아마도 님께서 쓰시는 테마는 default 테마가 아니라, 워드프레스 2.0+ 설치시 자동설정되는 님의 워드프레스 타이틀 명의의 테마일 수도 있습니다. 그럴 경우에는 default 테마가 아니라 님께서 현재 활성화하고 있는 테마의 파일을 수정하시기 바랍니다.

15 글 보임 - 1에서 15 까지 (총 34 중에서)
Lost Password

Gosinga

Gosinga님의 프로필 사진

@Gosinga

최근에 활성상태 아님