learning WordPress Widgets Tutorial > WordPress learning


Learn how to use WordPress.

learning | WordPress Widgets Tutorial


※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
learning님의 WordPress learning강의 청각장애인을 위한 자막


hello everyone in this WordPress
tutorial we will learn about widgets so
let's answer three questions one what is
a widget two how do I manage widgets
from the WordPress admin area and three
if I'm creating a theme how do I make
sure that that theme supports widgets or
is ready to accept widgets so we'll
start with number one what is a widget a
widget is simply a self-contained
chunk of content that usually has a very
specific purpose that gets displayed on
a website so for example a lot of
websites have a sidebar and in that
sidebar we may see an area named recent
posts and then a list of links that is a
recent posts widget or we might see an
area labeled categories and then a list
of links that is a categories widget so
now that we have a general idea of what
a widget is let's head over to the
WordPress admin area and add our first
widget to a website in the admin sidebar
look for the appearance link then look
for the sub link named widgets in this
left column we see the available widgets
that ship with WordPress out-of-the-box
so this is the archives widget it will
output a monthly archive of our posts
this is the categories widget that we
saw in the example earlier now in this
right-hand column we see the widget
locations of the current theme that is
enabled so we see the first widget
location is named sidebar and we can see
that in our current demo theme this is
the sidebar and it's completely empty
because we have not added any widgets
yet so let's add a widget I will add the
categories widget so I click on it it
asks me which widget location do I want
to add the categories widget to I will
select the sidebar I will click Save so
if we refresh our website they see that
the categories widget is now displaying
in the sidebar let's head back to the
WordPress admin area and let's imagine
that in addition to categories I also
want to output recent posts in the
sidebar so I can click
the recent posts widget add it to the
sidebar and if we refresh here it is now
let's imagine that I decide I want this
widget to display before the categories
widget it's as simple as dragging and
dropping the recent post widget to sit
above the categories now I must point
out that widgets are not limited to the
sidebar area of our website so for
example back in the admin area we can
see that there are additional widget
locations named footer area one through
four so at the bottom of our website we
currently do not see any widgets but
let's add the search widget to the
footer area one location here it is so
you can take advantage of any widget
locations that your theme offers so
perhaps we want to add a bit of custom
text to footer area too so I will click
on the text widget I will add it to
footer area too
I can now input any text that I want
custom text here this is a custom text
for what area to save there you have it
we could also add monthly archives to
footer area 3 and we could add meta
links to footer area 4 even though I'm
not sure how truly useful that is but
you get the idea with just a bit of
clicking and dragging and dropping we
just customized the sidebar of our
website and the four columns in our
footer and it's very easy to
drag-and-drop and modify so perhaps we
want to move these meta links to sit in
the 3rd column I can just drag and drop
and switch things up however I like
alright now let's change gears a bit we
are all familiar with what a widget is
and how to manage widgets from the
WordPress admin area so we are now ready
to dig into the real meat and potatoes
of this lesson if we are creating
our own themes or modifying an existing
theme how do we add widget' support and
how do we add widget locations anywhere
that we please all right so behind the
scenes I just removed all of the code in
my theme that was adding widget support
and was adding all of the widget
locations so you can see that this theme
no longer has a sidebar this is the
exact code that we were working with in
our previous lesson so we should all be
on the same page we are going to write
all of the code together let's get
started our first step is to hollow out
or carve out a bit of space for a
sidebar so the recipe to achieve this is
just HTML and CSS so we want two divs
and we will float one to the left and
one to the right so all of this existing
content we will wrap inside a div named
main column so in index.php after the
header I'll drop out of PHP we can drop
back into PHP here but we're going to
create a new div with a class of main
column now right before the footer
begins we can close and open PHP
accordingly and I'm just going to cut
and paste all of this code that is
outputting the meat-and-potato guts of
this page I'm going to cut that into the
main column div and let's create a new
div named secondary column this will be
our sidebar so within this column let's
include a sample paragraph that reads
this is the sidebar next let's hop over
to our stylesheet and add a bit of CSS
that corresponds with these new class
names of secondary column and main
column so I will create a new comment to
stay organized in our style dot CSS file
main column select the main column class
we'll give it a width of 66% and we'll
float it to the left let's create a
comment for the side column will select
the secondary column class give it a
width of 30% and float it to the right
now if you've watched my lessons on CSS
you know that when we float columns we
need to clear our floats now there are
many different ways to clear a float but
my personal preference is to use the
clear fix on a parent element so that
our modules stay self-contained and can
be easily moved around so all I'm going
to do is create a parent div I will give
it a name of site content and I'm just
going to cut and paste both the main
column and the secondary column into
this div and then this newly created div
will receive a second class of clear fix
so if we save index.php and if we save
our stylesheet we see that from a layout
perspective our sidebar is in place so
now let's work towards making this a
dynamic widget location whenever we are
enabling a feature or making something
dynamic there's a good chance that we
need to hop over to our functions PHP
file at the bottom of our functions file
I'm going to create a comment to stay
organized add our widget locations so we
need to write a function that adds a
widget location for our sidebar so we'll
create a function we can name it
anything we would like but I will name
this our widgets initialize now we will
write the guts of this function in just
a moment but first let's make sure that
this function runs at just the right
moment so WordPress offers a function
named add action the first argument
tells WordPress when to run this
function so we want to wait until the
widgets initialize action and then we
just want to run this function so the
second argument is the name of the
function that we're creating so I'll
just paste that in add a semicolon so
now we are free to write the guts of our
function so what do we want to do we
want to register a widget location
register only the name of the function
we need to use is not register widget
location it's register sidebar now don't
get too caught up on the name this is a
very flexible function that is not only
used for sidebars this function accepts
many arguments
we're actually going to create an array
so within this array the first option is
name this is the name that end users in
the WordPress admin area will see so
this is the widget location name or in
other words this name should be human
friendly so we can name this sidebar now
the second option is named ID now
end-users will not see this so this name
doesn't need to be human friendly it
needs to be computer friendly so that
means no spaces or extra weird
characters so I will name this sidebar
one now this is all the code we need for
the time being but before I save this
new code let's head over to the
WordPress dashboard and you'll notice
that when I hover over appearance
widgets is not an option but as soon as
we save this new code that we wrote so
command s if we come back to our
dashboard and hover over appearance
widgets is an option you can see there
is the one widget location sidebar now
currently if we add a widget to our
widget location nothing will happen
because we haven't updated our template
or theme code so for example back in
index.php in our secondary column div we
still have static text which reads this
is the sidebar so we can simply replace
this with a bit of PHP that will call in
the appropriate widgets from the
specific widget location that we choose
so we'll use the dynamic sidebar
function and this is where we use the ID
that we just set up so sidebar one
sidebar one save and now this code in
index dot PHP will automatically pull in
whatever we set up in the admin area so
if we want to add recent posts add it to
the sidebar and we are in business so
this is excellent
except it's not the year 2004 and we
don't only want widgets in our sidebar
some websites don't even have a sidebar
but the great thing about WordPress is
that it's very easy to add widget
locations wherever we want
so we could add a widget location in our
header we could add a widget location at
the top of our content area we can add
widget locations in our footer so to
show you how easy it is to add
additional widget locations I'm going to
add four widget locations in the footer
so four columns in functions.php we can
simply duplicate this register sidebar
code so the name of our new location
will be footer area one we'll give it an
ID of footer one you could use any name
and ID values that you choose so with
this code in place if we revisit the
widget screen in the WordPress admin
area we see a new widget location named
footer area one now if I attempt to add
the search widget to footer area one if
we refresh our website nothing will
happen because we have not yet output
the code in footer dot PHP so I will
create a new div with a class of footer
widgets and let's use PHP to output the
widget area that has an ID of footer one
so if we save and refresh there is our
widget location so that's one footer
widget area down let's create an
additional three so over in
functions.php we simply need to register
additional widget locations we can
duplicate this again change the name to
area two and the ID to footer to
duplicate it again for the area three an
ID of three and once again for the area
four with an ID of four so if we revisit
the widget screen we now have all four
widget locations now before we add any
fun widgets to any of these new
let's first output these locations in
footer dot PHP so here is the footer one
location I actually want to wrap each of
these footer locations in a div that
uses a class of footer widget area
so that we can use CSS to target this
class name later to create the four
columns effect or four columns layout
now before i duplicate this an
additional three times for the two three
and four areas i want to show you a neat
trick so if an end-user in the admin
area doesn't add any widgets to a
particular location we shouldn't output
this code in the browser it's a waste of
markup so we can use a bit of
conditional logic and say only if a
widget area is active so we can use the
is active sidebar function the argument
will be the name of this widget area so
footer one
so we're saying only if there are
actually widgets assigned to this widget
location do we want to output any of
this so then we will close our if
statement and if let's indent this to
stay organized so now we can simply
duplicate this an additional three times
for all four of our locations
all right so behind the scenes I just
finished copying and pasting this code
and then plugging in the appropriate
numbers so two two three three and four
four so now we are free to add different
widgets to these locations so we can add
archives to footer area too and we can
add meta links to footer area three and
we can add custom text to footer area
for custom text 44 alright so if we save
and then refresh in the browser we see
that all that is missing now is a bit of
CSS to position these areas so that they
sit as if they are four distinct columns
so in footer.php you can see that we
gave each column area a class of footer
widget area and we're going to be
floating these in just a second so I
want to make sure that their parent
element has a class of clear fix so
let's head over to our stylesheet create
a new comment footer widget areas now
our columns had a class of footer widget
I want four of these to sit on a row so
I will give them a width of 25% I will
float them to the left and I want them
to have margin or spacing between the
four columns so I will give them a bit
of padding right and to counteract this
so that our width based arithmetic still
makes sense I'm going to use box sizing
border box now obviously from a graphic
design standpoint there's still a lot of
work to be done but you now have the
tools to create widget areas and
register them within your themes and you
don't need to limit yourself to the
sidebar or the footer you can use the
dynamic sidebar function to output
widget locations anywhere in any of your
theme files maybe you want a widget
location at the end of each blog post
maybe you want a widget location that
only displays in a special page template
it's up to you you can create as many
locations as you want now before we
close out this lesson there are two more
tips that I want to share number one is
that if you're interested in customizing
the HTML that WordPress outputs for your
widgets there are a few simple options
that you can add in functions.php so for
example by default WordPress treats
widget areas as a giant unordered list
so that's why we see a bullet even for
the widget titles now we can use CSS to
hide the bullets or we can simply change
the HTML output so for example if I
inspect this header you can see that it
lives inside a list item this is the
categories widget and if I hover over
this list item you can see that it's
highlighting the recent posts widget so
we can customize that if you don't want
to live with the unordered list list
item structure you don't need to so in
functions.php we can add additional
options for this widget location so I
will say before widget output a bit of
HTML that reads div class widget item
and we'll use a different option named
after widget and we will simply say
close that div so now if we save and
refresh WordPress is using the custom
HTML structure that we just specified so
now we can see this widget is using a
div of the class of widget item and so
as recent posts so this way you are free
to add any border or margin between the
widgets you can write CSS that targets
HTML that you are comfortable with just
a quick note you also don't have to live
with the fact that by default WordPress
outputs the title of widgets as an h2
with the class of widget title so maybe
you want to use an h4 element to do that
in functions.php you can simply say v4
title h4 with a class of my special
class so you can use whatever you feel
like and then be sure to add the after
title and then close out whatever
element you just opened so now our
sidebar uses h4 elements and this
lessons final tip is that the output for
our sidebar which lives in index.php
secondary column this code should
actually live in its own file named
sidebar PHP so that way we don't repeat
ourselves so I will create a new file in
my theme folder named sidebar PHP I will
cut this secondary column code and paste
it into the newly created sidebar dot
PHP and then where this code used to
live in index dot PHP I can simply say
git sidebar and that's going to bring
this lesson to a close be sure to check
out the demo files for this lesson the
zip file is in the description in that
example I actually took the time to
write CSS so that the padding the margin
the borders the font sizes look a bit
better but feel free to experiment with
your own styles I hope you feel like you
learn something and stay tuned for more
WordPress and web development tutorials
thanks bye just a quick note at the end
here if you or anyone you know are
interested in learning html5 and css3
you might be interested in a new course
that I just published there is a
half-off coupon code in the description
for this video the course teaches these
two languages from the ground up we
learn how to create our own responsive
grid add transitions and animations we
learned about cross browser support and
feature detection and we even learn the
basics of sass it's definitely something
to consider if you're new to web design
and you want to get started on the right

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.