사실 짧은 코드를 구현하는 것은 매우 간단합니다. 짧은 코드를 구현하려면 워드프레스의 함수와 우리만의 작은 함수만 사용하면 쉽고 즐겁게 만들 수 있습니다.
단축코드 구현원리
WP의 일부 작업에 후크 및 필터 기능을 추가하는 것처럼
단축 코드는 기사 출력 콘텐츠에 대한 캡슐화된 필터일 뿐입니다.
일부 테마 기능이 말하는 것처럼 충격적이고 심오하지 않습니다.
간단한 예는 다음과 같습니다.
function myName() {//短代码要处理的函数 return "My name's XiangZi !"; } //挂载短代码 //xz为短代码名称 //即你在编辑文章时输入[xz]就会执行 myName 函数 add_shortcode('xz', 'myName');
그런 다음 기사에 [xz]를 입력하면
My name's XiangZi !
매개변수 전달을 위한 단축 코드
더 많은 고급 사용법에 대해서는 이후 기사에서 설명하겠습니다.
오늘은 단축 코드의 매개변수 전달 메커니즘에 대해서만 이야기하겠습니다
좀 더 발전된 예시
function myName($array,$content) { var_dump($array); var_dump($content); } add_shortcode('xz', 'myName');
기사를 편집할 때 다음을 입력합니다.
[xz a="1" b="2" c="3"]这里是三个参数哦[/xz]
함수에서 얻을 수 있는 내용은 다음과 같습니다.
//$array 是一个数组, //大体结构如下 $array = array('a'=>'1','b'=>'2','c'=>'3'); //$content 是一个字符串 $content = '这里是三个参数哦';
shortcode_atts
쇼트코드 플러그인 작업이 아니었다면 이 기능을 사용하지 않았을 겁니다.
shortcode_atts 함수는 주로 단축코드에서 가로채는 변수의 초기값을 설정하는 데 사용됩니다.
이것은 매우 실용적인 함수입니다. 실제로 이 함수는 배열에서 작동합니다.
단축 코드에서 가로채는 매개변수가 모두 배열 형식이기 때문입니다.
shortcode_atts 함수에 대한 자세한 설명
함수 이름으로 혼동하지 마세요. 워드프레스에서는 주로 숏코드 매개변수의 기본값을 설정하는 데 사용됩니다.
코드를 추출하여 다른 곳에서 사용하면 이 함수는 주어진 배열의 기본값을 설정하는 데 도움이 될 수 있습니다.
shortcode_atts 기능 사용법
이 기능은 사용이 매우 간단합니다.
shortcode_atts(array( "url" => 'http://PangBu.Com' ), $url)
위 코드의 의미는
$url 배열에서 키값이 url인 멤버의 기본값을 'http://PangBu.Com'으로 설정합니다,
다른 곳에서는 별로 쓸모가 없을 것 같지만, 때때로 배열의 값을 설정하는 것을 항상 잊어버리거나 너무 게으른 일부 매우 게으른 사람들에게는 이 기능이 매우 유용합니다.
shortcode_atts 함수 선언
/** * Combine user attributes with known attributes and fill in defaults when needed. * * The pairs should be considered to be all of the attributes which are * supported by the caller and given as a list. The returned attributes will * only contain the attributes in the $pairs list. * * If the $atts list has unsupported attributes, then they will be ignored and * removed from the final returned list. * * @since 2.5 * * @param array $pairs Entire list of supported attributes and their defaults. * @param array $atts User defined attributes in shortcode tag. * @return array Combined and filtered attribute list. */ function shortcode_atts($pairs, $atts) { $atts = (array)$atts; $out = array(); foreach($pairs as $name => $default) { if ( array_key_exists($name, $atts) ) $out[$name] = $atts[$name]; else $out[$name] = $default; } return $out; }