PHP 모범 사례


11

single.php와 같은 템플릿을 사용하고 PHP로 html로 싸인 경우 다음을 수행하는 것이 가장 좋습니다.

  1. PHP를 시작 + 중지 하시겠습니까? 예를 들어

     <h1 class="post-tilte"><?php the_title(); ?></h1>
     <p class="post-content"><?php the_content();?></p>

또는

  1. 에코 HTML 및 PHP 탈출? 예를 들어-

    <?php echo '<h1 class="post-title">' . get_the_title() . '</h1>
    <p class="post-content"' . get_the_content() . '</p>

나는 사전 선택의 여지가 없으며 둘 다하고있는 것을 발견합니다.


6
첫 번째 방법은 더 디자이너 친화적입니다. 따라서 많은 HTML과 약간의 PHP가 포함 된 템플릿에서 첫 번째 템플릿을 수행하십시오. 두 번째는 많은 PHP와 약간의 HTML이있을 때 유용합니다. 그것을 수행 functions.php또는 플러그인 등
Fayaz

3
당신은 또한 잊어 버렸습니다printf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

답변:


10

WordPress는 코딩 언어와 레이아웃 언어의 혼합을 사용하기 때문에 문제는 관련이 있습니다. 템플리트 언어, 구문을 사용하려는 경우이 주제와 관련이 없습니다. 그러나 당신의 질문에. html과 같은 훨씬 더 많은 레이아웃 언어 인 테마에 예제 소스를 사용하는 경우 첫 번째 언어를 선호합니다. 디자이너와 사용자가 훨씬 더 읽기 쉬운 마크 업을 읽어야합니다. 마크 업에 대한 개요를 작성하고 태그 열기 및 닫기 등을 쉽게 수행 할 수 있습니다.

플러그인에 포함하기 위해서는 논리와 흐름이 더 많은 코드가 구현하기 쉬운 두 번째 예입니다. 주요 주제는 마크 업이 아닌 php이며 소스에서 볼 수 있어야합니다. 또한 템플릿 파일에서이 마크 업을 제외하고 마크 업과 로직을 분리하려고합니다.


1
첫 번째 것의 또 다른 장점은 특정 편집기가 커서를 커서로 가져 가면 해당 여는 태그 나 닫는 태그를 강조 표시하지만 후자는 일반적으로 그 편의를 깰 수 있다는 것입니다.
MonkeyZeus


5

위의 답변에서 설명했듯이 첫 번째 방법은 디자이너 친화적이며 두 번째 방법은 플러그인과 HTML 코드의 수가 적은 복잡한 PHP 코드의 경우에 적합 할 수 있습니다.

그러나 대부분의 WordPress 템플릿 태그에는 매개 변수 beforeafter매개 변수 가 있으며 함수 호출 내에서 HTML 코드를 사용하는 것이 더 적합합니다.

예를 들어 the_title3 개의 매개 변수가 있는 경우

the_title( $before, $after, $echo );

아래와 같이 html을 매개 변수 전후에 전달할 수 있습니다.

the_title( '<h2 class="title">', '</h2>', true );

이 방법의 장점은

  • 디자이너 친화적
  • 제목이 비어 있으면 HTML 태그를 인쇄하지 않습니다
  • 복잡한 템플릿 코드뿐만 아니라 복잡한 PHP 코드에서도 사용 가능

0

첫 번째 방법은 다음과 같은 이유로 선호됩니다.

  • 고정 HTML 레이아웃을 동적 내용과 명확하게 분리합니다.
  • 읽기가 더 쉽습니다.
  • 문자열 내 HTML 속성은 일반적으로 인식되지 않기 때문에 대부분의 편집기에서 구문 강조를 통해 더 잘 지원됩니다.
  • HTML과 PHP를 너무 쉽게 섞을 수 없습니다.

위에서 언급 한 이유 때문에 첫 번째 방법은 이해하기 쉽고 유지 관리하기 쉬운 코드로 이어집니다.

내 경험상 어떤 상황에서는 두 번째 방법을 사용하는 것이 더 편리한 것처럼 보일 수 있습니다. 그러나 이는 일반적으로 약한 (소프트웨어) 디자인으로 인한 것이며 경고 신호로 표시되어야합니다.


0

코드 예제는 두 줄의 코드 만 표시하기 때문에 한계가 있지만 전반적인 답변은 상황에 따라 다릅니다. HTML 블록 내에서 PHP 행을 사용하는 경우 첫 번째 방법을 사용하십시오. PHP 블록 내에서 HTML 행을 사용하는 경우 두 번째 행을 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.