2014-11-04 3 views
1

나는 Wordpress (그리고 shortcode)를 배우기의 초기 단계에 있으니 나와 함께 감당해라.별도의 템플릿/파일이있는 Wordpress 단축 코드?

나에게 단편 코드는 모든 것에 페이지 특정 템플릿을 사용하지 않아도되는 스위스 육군 칼처럼 보인다. 가능한 한 많은 페이지를 만들고 싶지만 종종 특정 방법으로 물건을 표시하기 위해 (재사용 가능한) PHP 물건이 필요할 것입니다. 별도의 템플릿 틱 파일에 HTML을 넣을 수 있으며,

function caption_shortcode($atts, $content = null) { 
    return '<span class="caption">' . $content . '</span>'; 
} 

내 질문은 :

많이 봤 데, 그것은 같다 대한 단축 할 수있는 방법으로 나에게 보인다? 이 마크 업을 여기에 넣고, 따옴표를 빼는 등 잘못되어 있습니다. shortcode가 일부 Data Transfer Object (또는 단순히 일부 범위 변수)를 전달할 수있는 shortcode의 템플릿 파일과 같습니다. 그래서 : template-file에 표시하고, shortcode-function (정의되어있는 곳이라면, functions.php, 별도의 Plugin 등)에서 데이터를 찾아내는 로직 (상기 템플릿 파일에 패스).

+1

이 파일을 어느 파일에 넣으시겠습니까? php에서 일반적으로하는 것처럼 functions.php에 파일을 포함시킬 수 있습니다. 원하는 파일을 만들 수 있습니다. – veelen

+0

shortcode를 functions.php에 정확히 넣었습니다. (더 잘 알지 못하기 때문에) - 그래서 당신이 말하는 것은 파일 (include를 사용하여)을 가져올 수 있고,이 파일에서, 내 함수의 지역 변수 (functions.php에 상주)를 사용할 수 있습니까? –

+0

유지 관리 가능성을 염두에두고 클래스의 모든 단축 코드를 그룹화하는 것이 좋습니다. 좋은,하지만 오히려 고급 예제는 WC shortcodes 클래스입니다 : https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-shortcodes.php – diggy

답변

0

기능에 영향을주는 코드의 경우 코드를 플러그인에 넣으십시오.

모양을 보려면 테마의 템플릿 파일이나 funtions.php 파일에 코드를 입력하십시오. 많은 WP 개발자가 모든 코드를 테마의 functions.php 파일로 덩어리로 만들었습니다.이 코드는 종종 잘못된 장소입니다 (예 : 코드가 다른 테마로 내보낼 수있는 경우). 테마의 functions.php에 특정 테마에 관련된 코드 만 넣으십시오. 는 워드 프레스는 다음과 같이 파일을, 플러그인을 인식 PHP 파일을 작성하고 시작하는 데 활용하려면 다음

<?php 
/* 
Plugin Name: My Caption Shortcode Plugin 
Description: A really cool plugin 
*/ 

    function caption_shortcode($atts, $content = null) { 
     return '<span class="caption">' . $content . '</span>'; 
    } 
?> 

는 플러그인 디렉토리 (일반적으로, 각 플러그인에 대한 하위 디렉토리를 작성해야합니다)에서이 파일을 넣습니다. 플러그인은 일반적으로/wp-content/plugins /에 있습니다. 그런 다음 관리자 메뉴에서 플러그인 탭으로 이동하면 코드를 플러그인으로 활성화하거나 비활성화 할 수 있습니다.

물론이 플러그인은 그 자체로 아무런 변화가 없습니다. 플러그인 기능은 액션 후크, 필터 및 단락을 통해 Wordpress에 연결되어야한다는 것을 기억하십시오. 예를 들어 짧은 코드의 경우 add_shortcode 함수를 어딘가에 사용하면 Wordpress에서 해당 함수가 단축 코드임을 알 수 있습니다.

+0

Thx, Jim. 내가 재사용 할 수있는 플러그인에 커스텀 물건을 넣는 걸 들었다. 그런 다음add_shortcode 메소드를 사용하여 단축키로 추가하십시오 (필자의 경우). 그러나 : 나는 여전히 인용 된 HTML을 본다. 어쩌면 나는 너무 많은 ASP.NET MVC 개발자 (나는 어느 누구인가!)이지만 html이 html과 비슷한 파일에 있어야한다고 생각한다. 구문 강조, 모든 것. 속성 + 값이있는 html이 1 문자열 (이스케이프 처리 및 물건)에 포함될 때마다 나는이 나쁜 느낌을 갖습니다. html을 로직과 별도로 (예 : 표시 할 데이터를 찾는) 등등을위한 워드 프레스 개발 패턴이 있는지 여부를 알아 내기 위해 노력하고 있습니다. –

+0

좋은 점은 수정중인 콘텐츠와 마크 업을 별도로 유지해야한다는 것입니다. 예를 들어 게시물의 내용에 일종의 jQuery를 추가하는 것과 같이 사소한 일을 한 플러그인이 있다고 가정 해 봅시다. 이 경우 wordpress '필터'(플러그인)를 사용하여 출력 전에 마크 업을 콘텐츠에 추가하고 수정되지 않은 콘텐츠는 DB에 보관합니다. 이것을위한 '표준'wordpress 연습은 없지만 숙련 된 개발자는 특정 응용 프로그램에만 의존하는 콘텐츠에서 마크 업을 분리하려고합니다. –

+0

이것은 논리에서 html을 분리하기위한 Wordpress의 독특한 패턴입니다. "주제"는 사이트의 모습을 많이 제어합니다. 테마 내에는 일반적으로 여러 가지보기에 핵심 인 여러 PHP 파일이 있습니다. 예를 들어 single.php는 단일 게시물을보기위한 템플릿으로 사용됩니다. 코덱스는이 모든 것을 설명합니다 : http://codex.wordpress.org/Template_Hierarchy –

0

뷰 (PHP 파일)를 설정 한 다음 부분 뷰를 포함 할 수 있습니다. Wordpress를 사용하면 템플릿을 다른 템플릿 내에 포함하여 코드 재사용을 보장하고 자식 테마로 쉽게 수정할 수 있습니다. 당신은 그

get_template_part($slug); 

그러나, 귀하의 경우, 짧은 코드 함수가 호출 함수에 값을 반환 할 필요가 포함하려면이 기능을 사용할 수 있습니다. 따라서이 설정은 작동하지 않습니다.

관련 문제