What is shortcode?
The
shortcode is a short piece of code, This short code will do something that you
set at creation of the shortcode, Eg show a loop, You can make this shortcode anywhere
in the post, in the theme, except Excerpt and Widget.
Today
shortcode is used quite commonly you can go to the wordpress plugins library
and look for plugins with the shortcode keyword there are many plugins to
appear it supports you with a number of full-length shortcodes required from
decorating articles to making the tasks more complex.
And in many
themes for wordpress it also supports some of its shortcode.
How to create a shortcode
All the code
in this article you write into the functions.php file of the theme nhé.
To create a
shortcode, we will have two main steps.
Step 1: Set
the code execution function in the shortcode.
Step 2:
Creates a shortcode based on the function created.
To figure
out I'm going to give you a sample of this shortcode
//Initialize function for shortcode
function create_shortcode() {
echo "Hello
World!";
}
// Create a shortcode named [test_shortcode] and execute the code
from the create_shortcode function
Add_shortcode ('test_shortcode',
'create_shortcode');
|
What matters
is that I've put it all into code, Now if you write [test_shortcode] in the article content, Then it will
show the hello world! instead of the shortcode you just wrote.
But one
problem is the word Hello World! It will always be at the top of the article as
we use the echo command.
If you want
to show it right place the shortcode, you must use the return statement instead
of echo.
You can fix echo "Hello
World!" to return
"Hello World!" Later when you write shortcode you should avoid using echo.
Similarly,
we apply a little knowledge of Loop and Query to create a shortcode display 10
random articles offline.
function create_shortcode_randompost() {
$random_query = new WP_Query(array(
'posts_per_page' => 10,
'orderby' => 'rand'
));
ob_start();
if ( $random_query->have_posts() ) :
"<ol>";
while ( $random_query->have_posts() ) :
$random_query->the_post();?>
<li><a href="<?php the_permalink(); ?>"><h5><?php the_title(); ?></h5></a></li>
<?php endwhile;
"</ol>";
endif;
$list_post = ob_get_contents(); //
Take the entire contents above the $
list_post variable to return
ob_end_clean();
return $list_post;
}
add_shortcode('random_post', 'create_shortcode_randompost');
|
|
You can see
from paragraph 8 to paragraph 21 I wrote the loop in the function ob_start()
and
ob_end_clean()
. Actually here I have to cache
anything I’ll wrap that part to use the function ob_get_contents() Go to the $ list_post variable, then
return this variable out because when you do shortcode you must use return. If
anyone has a better way, let me know.
Now you
write [random_post]
the location where you
need to display the list of random items is ok.
Create a shortcode using the parameter
In the previous section we only learn
by creating a simple shortcode, which means it only shows what we wrote in the
shortcode that does not allow customization of the user. If you want to let the
user manually edit what is displayed, here we have to use the parameters.
For example, in the shortcode above we
have shown 10 random posts. But if using the parameter, we can let the user
customize the parameter in the number of posts displayed and can choose the
sort order if you want.
To create a shortcode containing the
parameters we create as follows.
function create_shortcode_ parameters1
($args, $content) {
return " this is number". $args[' parameters1'];
}
add_shortcode( 'shortcode_ parameters1',
'create_shortcode_ parameters1' );
|
First, in the function part, we have
two arguments $args and $content.
The $args variable is the shortcode parameter and the $content variable is the piece of content wrapped in
code. You see the example below:
[shortcode_thamso thamso1="100]Đây là biến $content[/shortcode]
Thus, we have thamso1 as parameter and number 100 means the value
of any parameter that the user can set. $content is wrapped inside the shortcode, but in the
above paragraph we do not use the $content variable to print so even if you write like
that, the $content section is not
showing up yet.
Now you write the shortcode on the
article it will show "this is 100" right, And that also makes the
parameter shortcode.
function create_shortcode_tinhtong($args,
$content) {
$tong = $args['term1'] +
$args['term2'];
return "Total".$tong;
}
add_shortcode( 'total', 'create_shortcode_total' );
|
And when writing the shortcode we will
write the following.
function create_shortcode_content($args,
$content) {
return strtoupper($content);
//Prints all the content in the shortcode }
add_shortcode('shortcode_content',
'create_shortcode_content');
|
And now you try to write in this
shortcode.
[shortcode_content]Viết cái gì đó vào đây[/shortcode_content]
Has it printed the entire text in the
body of the shortcode?
So why does the example above use only
$ content but have to declare both $ args? Because by default, if you just
declare a parameter, it will know for itself that the variable is the first
parameter, so it's best to declare both variables, of course you can set any
name.
Summary:
$ Args will have a parameter structure
of $ args ['arguments'], and the suffix is the parameter in the shortcode that
you have to write in the same way.
$ Content is the variable that prints
the entire contents of the open shortcode and shortcode tags.
How to write a shortcode into a PHP file
Shortcode only executes in the
WordPress editor, but in other situations it does not understand. So if you
want to insert a shortcode into a PHP file, you must use the do_shortcode ()
function to execute it. For example:
<?php echo do_shortcode('[test_shortcode]'); ?>
Examples of shortcode examples
Shortcode displays video from Youtube
By default, the embed code from
YouTube will look like this.
01
|
<iframe src="//www.youtube.com/embed/0KJ60uJZ3-Q" height="480" width="640" allowfullscreen="" frameborder="0"></iframe>
|
So here we play three parameters:
Enter the ID of the video.
Parameter to adjust the width of the
video.
Video horizontal adjustment parameter.
Ok let’t do it.
function create_youtube_shortcode(
$args, $content ) {
$content = '<iframe
src="//www.youtube.com/embed/'.$args['id'].'" height="
'.$args['height'].'" width="'.$args['width'].'"
allowfullscreen="" frameborder="0"></iframe>';
return $content;
}
add_shortcode('youtube', 'create_youtube_shortcode');
|
And the shortcode would look like
this:
[/youtube width="500" height="300"
id="0KJ60uJZ3-Q"]
It will manually pass the parameters
you entered into the shortcode.
Insert a full color notification box
This example will work with $ content
in the shortcode.
function create_notification _shortcode($args,
$content) {
return "
<div class='notification '>".$content."</div>
";
}
add_shortcode( 'notification ', 'create_notification
_shortcode' );
|
And add a little CSS to the style.css
file
.thongbao {
background: #585858;
padding: 1.5em 2em;
color: #FFF;
border: 1px solid #C7C7C7;
}
|
Ok, now you can write in the content
is [thongbao]Nội
dung thông báo[/thongbao] Then see the results offline.
Shortcode retrieves Facebook information
In this example, the code will be a
little too long to use get content from JSON through Facebook Graph. The
shortcode structure will be [\fbgraph username="thachpham92"]
The thachpham92 means the input
parameter, ie the Facebook username needs to be displayed.
function create_fbgraph_shortcode($args,
$content) {
$get_info =
wp_remote_get('https://graph.facebook.com/'.$args['username']);
$get_avatar =
"https://graph.facebook.com/".$args['username']."/picture?type=large";
$dc_info =
json_decode($get_info['body'], true);
$dc_avatar =
json_decode($get_avatar['data'], true);
// Make variables easy to handle.
$fb_id = $dc_info['id'];
$fb_username =
$dc_info['username'];
$fb_url = $dc_info['link'];
$fb_name =
$dc_info['first_name'];
// Write gender.
if ($dc_info['gender'] ==
'male') {
$fb_gender = "male";
} else if ($dc_info['gender'] == female) {
$fb_gender = "female";
} else {
$fb_gender = " Undefined!";
}
ob_start();?>
<div class="fb-info">
<h5>your information <?php echo $fb_name; ?></h5>
<div class="avatar"><img
alt="" src="<?php echo $get_avatar;
?>" /></div>
<div
class="info"><strong>your ID: </strong> <?php
echo $fb_id; ?>
<strong>Username: </strong> <?php echo $fb_username; ?>
<strong>sex: </strong> <?php echo $fb_gender; ?></div>
</div>
<?php
$result = ob_get_contents();
ob_end_clean();
return $result;
}
add_shortcode( 'fbgraph',
'create_fbgraph_shortcode' );
|
And a little CSS like demo
.fb-info {
overflow: hidden;
padding: 0.5em 1em;
background: #3B5998;
border: 1px solid #E8E8E8;
color: #FFF;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
.fb-info .avatar {
width: 30%;
float: left;
margin-right: 5%;
padding: 10px;
background: #FFF;
border: 1px solid #F3F3F3;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
.fb-info .info {
width: 60%;
float: right;
}
|
Ok, let's try it.
Last words
Thus, in this article you already know
through how to create a shortcode basically like, then create a shortcode that
use parameters and I also explained quite thoroughly about it (should post it
new long this) .
Really shortcode in WordPress is an
extremely powerful feature for you to insert something into the post quickly.
But be careful when using it because if you have users in multiple threads,
later you do not want it anymore shortcode off, then to really tired.
If you still have questions, please leave
a comment offline.
0 comments:
Post a Comment