Home  >  Article  >  Backend Development  >  Implementation of short codes and related function usage skills in WordPress development_php skills

Implementation of short codes and related function usage skills in WordPress development_php skills

WBOY
WBOYOriginal
2016-05-16 20:00:531231browse

In fact, implementing short codes is very simple. We only need to use a function in WordPress to implement short codes, plus a small function of our own, which can make short code implementation easy and enjoyable.

Short code implementation principle
Just like adding hooks and filter functions to some actions of WP,
The shortcode is just an encapsulated filter for the article output content,
It is not as shocking and profound as some theme functions say.
Here’s a simple example:

function myName() {//短代码要处理的函数
return "My name's XiangZi !";
}
//挂载短代码
//xz为短代码名称 
//即你在编辑文章时输入[xz]就会执行 myName 函数
add_shortcode('xz', 'myName');

Then if we enter [xz] in the article, we will get

My name's XiangZi !

Short code to pass parameters
More advanced uses, I will talk about in later articles,
Today I will just talk about the parameter passing mechanism of short code
A more advanced example

function myName($array,$content) {
var_dump($array);
var_dump($content);
}
 
add_shortcode('xz', 'myName');

When editing an article we enter:

[xz a="1" b="2" c="3"]这里是三个参数哦[/xz]

In the function we will get:

//$array 是一个数组,
//大体结构如下
$array = array('a'=>'1','b'=>'2','c'=>'3');
//$content 是一个字符串
$content = '这里是三个参数哦';

shortcode_atts
I wouldn’t have used this function if I wasn’t working on a shortcode plug-in,
The shortcode_atts function is mainly used to set the initial value of the intercepted variables in the shortcode.
This is a very practical function. In fact, this function really works on arrays,
Because the parameters we intercept from the short code are all in array form.

Detailed explanation of shortcode_atts function
Don’t be confused by the function name. In WordPress, it is mainly used to set the default values ​​​​of shortcode parameters,
If we extract the code and use it elsewhere, this function can help us set the default value of a given array.

shortcode_atts function usage
This function is very simple to use.

shortcode_atts(array(
"url" => 'http://PangBu.Com'
), $url)

The above code means,
Set the default value of the member whose key value is url in the $url array to 'http://PangBu.Com',
It doesn't seem to be of much use in other places, but for some super lazy people who sometimes always forget or are too lazy to set the value of the array, this function is very useful.

shortcode_atts function declaration

/**
 * 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;
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn