WordPress 단축 코드는 포럼 태그와 유사하며 그 형식은 꺾쇠 괄호가 대괄호로 대체된 Html 태그와 유사합니다. 많은 사람들이 단축코드를 단축코드라고 부르는데 공식 번역은 단축코드로 수정해야 합니다.
쇼트코드 개발의 논리는 상대적으로 간단하며 주로 추가, 삭제, 판단이 이루어지는데, 이에 대해 이번 글에서 자세히 소개하겠습니다.
단축 코드 형식
단축 코드 형식은 매우 유연하며 속성이 있거나 속성이 없거나 닫혀 있거나 닫혀 있지 않은 등이 가능합니다.
[ 예]
[예]콘텐츠[/예]
[예 attr="attribute" attr-hide="1"]콘텐츠[/예]
[ 예 "속성"]
단축 코드 추가
단축 코드를 추가하려면 add_shortcode() 함수를 사용해야 합니다. 두 개의 속성, 첫 번째는 단축 코드 이름, 두 번째는 단축 코드의 콜백 함수입니다.
add_shortcode( $tag, $func );
예를 들어 test라는 단축 코드를 추가하고 Bing_shortcode_test() 함수를 다시 호출합니다.
function Bing_shortcode_test( $attr, $content ){ return 'Hello World!'; } add_shortcode( 'test', 'Bing_shortcode_test' );
[ in에 추가 기사 테스트]는 "Hello World!"를 출력합니다.
위 예시에서 볼 수 있듯이 숏코드의 콜백 함수는 2개의 파라미터를 받아야 합니다. 첫 번째는 배열에 저장된 단축 코드의 모든 속성이고, 두 번째는 단축 코드의 콘텐츠(폐쇄된 단축 코드의 콘텐츠)입니다.
단축 코드 제거
remove_shortcode() 함수는 단축 코드를 제거할 수 있습니다. 제거하려면 단축 코드의 이름만 지정하면 됩니다.
remove_shortcode( 'test' );
remove_all_shortcodes() 함수는 현재 추가된 모든 단축코드를 제거하는 데 사용됩니다.
remove_all_shortcodes();
단축코드 판단
단축코드 판단에는 두 가지 함수가 있는데, shortcode_exists() 함수는 단축코드 존재 여부를 판단하는 함수입니다.
remove_all_shortcodes(); if( shortcode_exists( 'test' ) ) echo '简码 test 存在';//False add_shortcode( 'test', 'Bing_shortcode_test' ); if( shortcode_exists( 'test' ) ) echo '简码 test 存在';//True
문자열에 특정 단축 코드가 나타나는지 확인하는 has_shortcode() 함수도 있습니다.
$content = '测试测试测试测试测试测试测试测试'; if( has_shortcode( $content, 'test' ) ) echo '字符串中有 test 简码';//False $content = '测试测试测试测[test]测试[/test]试测试测试测试测试'; if( has_shortcode( $content, 'test' ) ) echo '字符串中有 test 简码';//True
단축코드 실행
do_shortcode() 함수는 문자열에서 단축코드를 찾아 단축코드에서 호출하는데 사용됩니다. 필요한 콘텐츠에 단축 코드를 실행하기 전에 추가된 콜백 함수입니다.
WordPress에서 추가한 후크:
add_filter( 'the_content', 'do_shortcode', 11 );
예:
function Bing_shortcode_test( $attr, $content ){ return 'Hello World!'; } add_shortcode( 'test', 'Bing_shortcode_test' ); $content = '测试测试测试测[test]试测试测试测试测试'; echo do_shortcode( $content );//测试测试测试测Hello World!试测试测试测试测试
단축 코드 속성
쇼트코드는 다양한 형식의 속성을 지원하며 쇼트코드 콜백 함수에 대한 첫 번째 매개변수를 허용합니다. 매개변수의 기본값을 설정하려면 shortcode_atts() 함수를 사용할 수 있습니다:
function Bing_shortcode_test( $attr, $content ){ extract( shortcode_atts( array( 'url' => 'http://www.bgbk.org', 'hide' => false, 'text' => '点击隐藏 / 显示' ), $attr ) ); $hide = $hide ? ' style="display:none;"' : ''; return '' . $text . ''; } add_shortcode( 'test', 'Bing_shortcode_test' );
스크립트는 단축 코드일 때만 로드됩니다. 페이지에서 사용됩니다
개발 과정에서 가끔 이런 문제가 발생합니다. 단축 코드 모듈은 JS 또는 CSS 스크립트를 로드해야 하며, 페이지에서 단축 코드를 사용하지 않으면 리소스 낭비가 발생합니다.
예를 들어 다음 Google 지도 플러그인은 다음과 같습니다.
//添加简码 function Bing_add_google_map( $atts, $content ){ //content... } add_shortcode( 'google_map', 'Bing_add_google_map'); //挂载脚本 function Bing_add_javascript(){ wp_enqueue_script( 'map_scripts' ); } add_action( 'wp_enqueue_scripts', 'Bing_add_javascript' );
페이지에서 [google_map] 단축 코드를 사용하는 경우에만 스크립트를 로드하면 됩니다. . 어떻게 해야 하나요?
실제로는 매우 간단합니다. 숏코드 기능이 실행될 때 바닥글에 스크립트를 마운트하기만 하면 됩니다.
//添加简码 function Bing_add_google_map( $atts, $content ){ $GLOBALS['google_map_shortcode'] = true; return '地图的代码'; } add_shortcode( 'google_map', 'Bing_add_google_map'); //挂载脚本 function Bing_add_javascript(){ global $google_map_shortcode; if( isset( $google_map_shortcode ) && $google_map_shortcode ) wp_enqueue_script( 'map_scripts' ); } add_action( 'wp_footer', 'Bing_add_javascript' );
요약
단축코드를 활용하면 글의 내용을 확장하는데 아주 좋은 기능입니다. 뭐, 빠르고 쉽게 무언가를 추가할 수 있습니다.
더 많은 관련 튜토리얼을 보려면 초보부터 마스터까지 PHP 프로그래밍에 대한 전체 비디오 튜토리얼 세트