Hungarian (Magyar) translation by Viktor Istvan Csaszar (you can also view the original English article)
Ennek az oktatósorozatnak az első részében bemutattam a dinamikus oldalsablonok alapkoncepcióját, és létrehoztam egy általános oldalsablont a jövőbeni munkához történő felhasználásra. A Twenty Seventeen szülősablonon alapuló WordPress gyermeksablont használtam az oldalsablon implementálásához.
Ebben az oktatóbejegyzésben további specifikus részleteket tudhatsz meg a dinamikus oldalsablonokról, illetve,hogy hogyan használd fel őket a saját WordPress projektjeidben.
Azt is lépésről-lépésre bemutatom, hogyan terjeszd ki az oldalsablont a kezdeti lépésektől, míg létrehozod a saját első, működő dinamikus oldalsablonod!
Dinamikus oldalsablonok: Egy rugalmasabb megközelítés
Nos, hogyan is tehetjük az oldalsablonokat még rugalmasabbá, s miért is hasznos ez egyébként?
Tegyük fel, hogy van egy portfólió oldalsablonokd, mely galériát hoz létre, benne a portfolói elemek sokaságával. Mindegyik elem meghatározott mérettel rendelkezne, s így csak megadott mennyiség férne közülük mindegyik sorba.
Természetesen hozzáadhatnánk egy másik oldalsablont, hogy a portfóliókat különböző méretben is mutassuk. De mi van akkor, ha mi kicsi, közepes és nagy méretű portfóliókat is mutatnánk? Ehhez, három különálló oldalsablonra lenne szükség, mindegyikük különböző méretben mutatná a portfólió elemeket.
Egy azonnali megoldással viszont sokkal rugalmasabbá tehetnénk ezt, egy legördülő menü hozzáadásával, ahol kiválasztható lenne a portfólió mérete (pl. kicsi, közepes vagy nagy). Ez kényelmesebb lenne a felhasználó számára is, mivel az oldalsablon doboz kevésbé lenne zsúfolt a szükségtelen választási lehetőségekkel.
Nem beszélve arról, hogy a fejlesztőnek is csak egy oldalsablont kellene karban tartania, a korábbi három helyett! Ez megfelelne a Ne ismételd önmagad (Don't Repeat Yourself - DRY) szoftverfejlesztési alapelvnek.
Az összes oldalsablonnak dinamikusnak kell lennie?
Érdemes megjegyezni, hogy nem minden oldalsablon számára előnyös, ha dinamikus. Ha egy olyan oldalsablonnal rendelkezel, mely csupán egyetlen dolgot csinál, s csupán azt az egyet, akkor nem szükséges dinamikusnak lennie. Ebben az esetben nem lenne értelme további egyedi vezérlést és extra dolgokat addni ehhez a sablonhoz.
Ahogy te is látni fogod ennek az oktató bejegyzésnek a végére, számos oldalsablon nagyszerű előnyöket szerezhet, ha sokkal rugalmasabban működik.
Egy másik hasznos példa a dinamikus oldalsablonokhoz a kapcsolatfelvételi űrlap. Nagyon sok egyedi vezérlőelem adható az ilyen oldalsablonhoz, hogy nagymértékben rugalmassá váljon.
Például, ahelyett, hogy a kimeneten az űrlapmezők egy meghatározott sorrendje jelenjen meg, az oldalsablon vezérlőelemei egy teljesen testre szabható mezősorrendet tehetnek lehetővé. Vagy esetleg a captcha mező alkalmanként megjelenítésre kerülthet, így elkerülve a spam beküldéseket. Hihetelen sok mód van egy kapcsolatfelvételi űrlap személyre szabására!
Egy dinamikus oldalsablont fogok elkészíteni ennek az oktatósorozatnak a 3. részében. De előbb, kezdjük a munkát egy általános célú dinamikus oldalsablon létrehozásával!
Az első dinamikus oldalsablonunk
Kezdésnek, létre fogunk hozni egy alap dinamikus oldalsablont, mellyel megmutatjuk, mennyire együtt tudnak működni egymással a különféle összetevők. Egyedi vezérlők kerülnek hozzáadásra az oldalszerkesztőhöz, melyek később felhasználásra kerülnek az oldalsablon kimenetének kialakításához.
Az egyedi oldalsablon vezérlő elemek, melyeket hamarosan hozzá fogunk adni:
- Szövegmező
- Szövegdoboz
- Jelölődoboz
- Rádiógombok
- Legördülő jelölődoboz
Ideális esetben ezeket a vezérlőelemeket közvetlenül az oldalsablon legördülő doboza alá kell elhelyezni, ezzel egyértelmű lesz, hogy az oldalsablonhoz tartoznak.
Habár, a WordPress nem biztosít ehhez egyetlen hookot sem, így neked (most) ezt úgy kell megoldanod, hogy az egyedi oldalsablon vezérlőket egy elkülönített egyedi meta dobozhoz adod. Ennek az oktatósorozatnak a harmadik részében majd megmutatom, hogy kerekedj felül ezen a problémán is.
A hookok alapvetően a WordPress fejlesztéshez. Lehetővé teszik a fejlesztők számára a kódkészlet olyan kiterjesztését, ahol nem szükséges a rendszermag fájljainak szerkesztése, amely amúgy is rossz ötlet lenne. Főleg azért, mert minden egyedi kódot kisöpörne egy következő WordPress frissítés (amely nagyon gyakran kiadásra kerül).
A meta dobozunk megjelenítéséhez az oldalszerkesztő felületen, add hozzá a load-post.php
és load-post-new.php
hookokat a gyermeksablon init()
metódusához, amit az 1. részben hoztunk létre.
1 |
<?php
|
2 |
add_action( 'load-post.php', array( $this, 'page_template_meta_box' ) ); |
3 |
add_action( 'load-post-new.php', array( $this, 'page_template_meta_box' ) ); |
4 |
add_action( 'save_post', 'save_page_template_meta', 10, 2 ); |
5 |
}
|
Két WordPress hookot használunk, hogy biztosítsuk a meta dobozok megjelenítését az oldalszerkesztőben, hozz létre akár egy új oldalt, vagy szerkessz egy már meglévőt. Ott van még a save_post
hook is, mely kezeli a post meta adatok mentését, s mellyel egy kicsit később foglalkozunk majd.
Add hozzá a következő négy class metódust az adatok létrehozásához, megjelenítéséhez és mentéséhez a meta dobozokhoz.
1 |
/* Add meta box hook. */
|
2 |
public function page_template_meta_box() { |
3 |
add_action( 'add_meta_boxes', array( $this, 'add_page_template_meta_box' ) ); |
4 |
}
|
1 |
/* Register meta box. */
|
2 |
public function add_page_template_meta_box() { |
3 |
add_meta_box( |
4 |
'page-template-meta-box', |
5 |
esc_html__( 'Page Template Meta Box', 'twenty-seventeen-child' ), |
6 |
array( $this, 'display_page_template_meta_box' ), |
7 |
'page', |
8 |
'side', |
9 |
'default'
|
10 |
);
|
11 |
}
|
1 |
/* Render meta box on the page editor. */
|
2 |
public function display_page_template_meta_box($object) { |
3 |
wp_nonce_field( basename( __FILE__ ), 'page_template_meta_box_nonce' ); |
4 |
}
|
Nem fogom itt túl mélyen részletezni a WordPress meta dobozokat, mely önmagában is egy önálló oktatóbejegyzés lehetne, de megjegyezném a következőket a fentebb általam hozzáadott kódról:
- A
page_template_meta_box()
és azadd_page_template_meta_box()
class metódusok regisztálják a meta dobozt a WordPress-ben. - Az
add_page_template_meta_box()
esetén a'page'
paraméter határozza meg, hogy ez a meta doboz csak a 'page" poszt típus szerkesztőjében jelenjen meg a WordPress adminban. - A display_
page_template_meta_box()
class metódus hozza létre a meta dobozt, és beállít egy nonce-t az űrlapvezérlők még biztonságosabbá tételére.
Ha minden rendben ment, akkor már látnod kell a megjelent meta dobozt az oldal szerkesztőben, ahogy alább látszik.



Jelenleg még egy picit üres, szóval, adjunk hozzá néhány vezérlőt!
Egyedi vezérlők hozzáadása
Ha még emlékezel a fentiekből, akkor hozzáadunk egy szövegmezőt, szövegdobozt, rádiógombot és dobozválasztó vezérlőket a meta dobozhoz. Kezdjük a következő kód hozzáadásával a display_page_template_meta_box()
metódushoz, a nonce függvény alatt.
1 |
<?php
|
2 |
$text = get_post_meta( $object->ID, 'page_template_text', true ); |
3 |
$textarea = get_post_meta( $object->ID, 'page_template_textarea', true ); |
4 |
$checkbox = get_post_meta( $object->ID, 'page_template_chk', true ); |
5 |
$radio = get_post_meta( $object->ID, 'page_template_radio', true ); |
6 |
$select = get_post_meta( $object->ID, 'page_template_select', true ); |
Ez veszi a meta doboz vezérlőink aktuális értékeit, s eltárolja őket helyi változókként. Most addjuk hozzá a következő HTML kódot közvetlenül utána, hogy legeneráljuk a meta doboz vezérlőket.
1 |
?> |
2 |
<div>
|
3 |
<p>
|
4 |
<label for="page-template-text"><?php _e( "Text Control", 'twenty-seventeen-child' ); ?></label><br> |
5 |
<input class="widefat" type="text" name="page-template-text" id="page-template-text" value="<?php echo esc_attr( $text ); ?>" /> |
6 |
</p>
|
7 |
|
8 |
<p>
|
9 |
<label for="page-template-textarea"><?php _e( "Textarea Control", 'twenty-seventeen-child' ); ?></label><br> |
10 |
<textarea rows="5" class="widefat" name="page-template-textarea" id="page-template-textarea"><?php echo esc_attr( $textarea ); ?></textarea> |
11 |
</p>
|
12 |
|
13 |
<p>
|
14 |
<input type="checkbox" name="page-template-chk" id="page-template-chk" value="1" <?php checked($checkbox, true); ?> /> <label for="page-template-chk"><?php _e( "Checkbox Control", 'twenty-seventeen-child' ); ?></label><br> |
15 |
</p>
|
16 |
|
17 |
<p>
|
18 |
<label for="page-template-align"><?php _e( "Radio Button Control", 'twenty-seventeen-child' ); ?></label><br> |
19 |
<input type="radio" name="page-template-align" id="rdo-left" value="left" <?php checked( $radio, 'left' ); ?> ><label for="rdo-left"><?php _e( 'Left', 'twenty-seventeen-child' ); ?></label><br> |
20 |
<input type="radio" name="page-template-align" id="rdo-right" value="right" <?php checked( $radio, 'right' ); ?> ><label for="rdo-right"><?php _e( 'Right', 'twenty-seventeen-child' ); ?></label><br> |
21 |
<input type="radio" name="page-template-align" id="rdo-center" value="center" <?php checked( $radio, 'center' ); ?> ><label for="rdo-center"><?php _e( 'Center', 'twenty-seventeen-child' ); ?></label><br> |
22 |
</p>
|
23 |
|
24 |
<p>
|
25 |
<label for="page-template-select">Dropdown</label> |
26 |
<select name="page-template-select" class="widefat"> |
27 |
<option value='one' <?php selected( 'one', $select ); ?>><?php _e( 'One', 'twenty-seventeen-child' ); ?></option> |
28 |
<option value='two' <?php selected( 'two', $select ); ?>><?php _e( 'Two', 'twenty-seventeen-child' ); ?></option> |
29 |
<option value='three' <?php selected( 'three', $select ); ?>><?php _e( 'Three', 'twenty-seventeen-child' ); ?></option> |
30 |
<option value='four' <?php selected( 'four', $select ); ?>><?php _e( 'Four', 'twenty-seventeen-child' ); ?></option> |
31 |
</select>
|
32 |
</p>
|
33 |
</div><?php |
Mindegyik vezérlő egy bekezdés elemet tartalmazott magában, s az aktuális értéke frissítésre került a korábban létrehozott helyi változókkal. Ez biztosítja, hogy a meta doboz vezérlők mindig a megfelelő értékeket jelenítik meg.
Habár, ez az egész nem fog megtörténni, hacsak nem mentjük a jelenlegi meta doboz vezérlői adatait a WordPress adatbázisába.
Kicsit korábban, regisztráltam egy hookot, hogy végrehajtson egy class metódust minden alkalommal, amikor az oldal szerkesztő frissítésre került. Adjuk hozzá hát ezt a metódust a gyermeksablon classunkhoz most!
1 |
<?php
|
2 |
/* Save meta box data. */
|
3 |
public function save_page_template_meta( $post_id, $post ) { |
4 |
|
5 |
if ( ! ( isset( $_POST[ 'page_template_meta_box_nonce' ] ) && wp_verify_nonce( $_POST[ 'page_template_meta_box_nonce' ], basename( __FILE__ ) ) ) ) { |
6 |
return $post_id; |
7 |
}
|
8 |
|
9 |
if ( ! current_user_can( 'edit_post', $post_id ) ) { |
10 |
return $post_id; |
11 |
}
|
12 |
|
13 |
if( 'page' != $post->post_type ) { |
14 |
return $post_id; |
15 |
}
|
16 |
|
17 |
$page_template_text_value = isset( $_POST[ 'page-template-text' ] ) ? $_POST[ 'page-template-text' ] : ''; |
18 |
update_post_meta( $post_id, 'page_template_text', $page_template_text_value ); |
19 |
|
20 |
$page_template_textarea_value = isset( $_POST[ 'page-template-textarea' ] ) ? $_POST[ 'page-template-textarea' ] : ''; |
21 |
update_post_meta( $post_id, 'page_template_textarea', $page_template_textarea_value ); |
22 |
|
23 |
$page_template_chk_value = isset( $_POST[ 'page-template-chk' ] ) ? $_POST[ 'page-template-chk' ] : ''; |
24 |
update_post_meta( $post_id, 'page_template_chk', $page_template_chk_value ); |
25 |
|
26 |
$page_template_radio_value = isset( $_POST[ 'page-template-align' ] ) ? $_POST[ 'page-template-align' ] : ''; |
27 |
update_post_meta( $post_id, 'page_template_radio', $page_template_radio_value ); |
28 |
|
29 |
$page_template_select_value = isset( $_POST[ 'page-template-select' ]) ? $_POST[ 'page-template-select' ] : ''; |
30 |
update_post_meta( $post_id, 'page_template_select', $page_template_select_value ); |
31 |
}
|
A save_page_template_meta() class metódus kezeli a meta doboz vezérlői adatainak mentését. Csak akkor menti a meta doboz adatait, ha a nonce megerősítésre kerül, a jelenlegi felhasználó szerkesztheti a posztokat, és az oldal szerkesztő admin felületén vagyunk.
Ha ezen a feltételek fennállnak, akkor mindegyik vezérlő adatát kinyerjük a globális $_POST
változóból. Ez a változó minden alkalommal beállításra kerül, amikor egy űrlapot elküldenek.
Végül, a meta doboz vezérlő adatai elmentésre kerülnek a WordPress adatbázisába, mint az aktuális oldal meta adatai.
A hozzáadott egyedi oldalsablon vezérlőkkel, a meta dobozunknak így kell kinéznie.



Írj be valamilyen szöveget a szövegmezőbe és a szövegdobozba, jelölj ki valamit a jelölődobozban, a rádiógombnál és a kiválasztó dobozban. Nyomd meg a gombot a változtatásaid elmentéséhez, s amikor az oldal szerkesztő befrissül, a meta doboz vezérlőidnek azt kell mutatniuk, amit épp beállítottál.



A gyermeksablon functions.php fájljának teljes forráskódja alább látható.
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
* Twenty Seventeen child theme class.
|
5 |
*
|
6 |
* DPT = D[ynamic] P[age] T[emplates].
|
7 |
*/
|
8 |
class DPT_Twenty_Seventeen_Child { |
9 |
|
10 |
/**
|
11 |
* Register hooks.
|
12 |
*/
|
13 |
public function init() { |
14 |
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_parent_theme_styles' ) ); |
15 |
add_action( 'load-post.php', array( $this, 'page_template_meta_box' ) ); |
16 |
add_action( 'load-post-new.php', array( $this, 'page_template_meta_box' ) ); |
17 |
add_action( 'save_post', array( $this, 'save_page_template_meta' ), 10, 2 ); |
18 |
}
|
19 |
|
20 |
/* Enqueue parent theme styles. */
|
21 |
public function enqueue_parent_theme_styles() { |
22 |
wp_enqueue_style( 'twenty-seventeen-css', get_template_directory_uri() . '/style.css' ); |
23 |
}
|
24 |
|
25 |
/* Add meta box hook. */
|
26 |
public function page_template_meta_box() { |
27 |
add_action( 'add_meta_boxes', array( $this, 'add_page_template_meta_box' ) ); |
28 |
}
|
29 |
|
30 |
/* Register meta box. */
|
31 |
public function add_page_template_meta_box() { |
32 |
add_meta_box( |
33 |
'page-template-meta-box', |
34 |
esc_html__( 'Page Template Meta Box', 'twenty-seventeen-child' ), |
35 |
array( $this, 'display_page_template_meta_box' ), |
36 |
'page', |
37 |
'side', |
38 |
'default'
|
39 |
);
|
40 |
}
|
41 |
|
42 |
/* Render meta box on the page editor. */
|
43 |
public function display_page_template_meta_box( $object ) { |
44 |
|
45 |
wp_nonce_field( basename( __FILE__ ), 'page_template_meta_box_nonce' ); |
46 |
|
47 |
$text = get_post_meta( $object->ID, 'page_template_text', true ); |
48 |
$textarea = get_post_meta( $object->ID, 'page_template_textarea', true ); |
49 |
$checkbox = get_post_meta( $object->ID, 'page_template_chk', true ); |
50 |
$radio = get_post_meta( $object->ID, 'page_template_radio', true ); |
51 |
$select = get_post_meta( $object->ID, 'page_template_select', true ); |
52 |
?>
|
53 |
<div>
|
54 |
<p>
|
55 |
<label for="page-template-text"><?php _e( "Text Control", 'twenty-seventeen-child' ); ?></label><br> |
56 |
<input class="widefat" type="text" name="page-template-text" id="page-template-text" value="<?php echo esc_attr( $text ); ?>" /> |
57 |
</p>
|
58 |
|
59 |
<p>
|
60 |
<label for="page-template-textarea"><?php _e( "Textarea Control", 'twenty-seventeen-child' ); ?></label><br> |
61 |
<textarea rows="5" class="widefat" name="page-template-textarea" id="page-template-textarea"><?php echo esc_attr( $textarea ); ?></textarea> |
62 |
</p>
|
63 |
|
64 |
<p>
|
65 |
<input type="checkbox" name="page-template-chk" id="page-template-chk" value="1" <?php checked($checkbox, true); ?> /> <label for="page-template-chk"><?php _e( "Checkbox Control", 'twenty-seventeen-child' ); ?></label><br> |
66 |
</p>
|
67 |
|
68 |
<p>
|
69 |
<label for="page-template-align"><?php _e( "Radio Button Control", 'twenty-seventeen-child' ); ?></label><br> |
70 |
<input type="radio" name="page-template-align" id="rdo-left" value="left" <?php checked( $radio, 'left' ); ?> ><label for="rdo-left"><?php _e( 'Left', 'twenty-seventeen-child' ); ?></label><br> |
71 |
<input type="radio" name="page-template-align" id="rdo-right" value="right" <?php checked( $radio, 'right' ); ?> ><label for="rdo-right"><?php _e( 'Right', 'twenty-seventeen-child' ); ?></label><br> |
72 |
<input type="radio" name="page-template-align" id="rdo-center" value="center" <?php checked( $radio, 'center' ); ?> ><label for="rdo-center"><?php _e( 'Center', 'twenty-seventeen-child' ); ?></label><br> |
73 |
</p>
|
74 |
|
75 |
<p>
|
76 |
<label for="page-template-select">Dropdown</label> |
77 |
<select name="page-template-select" class="widefat"> |
78 |
<option value='one' <?php selected( 'one', $select ); ?>><?php _e( 'One', 'twenty-seventeen-child' ); ?></option> |
79 |
<option value='two' <?php selected( 'two', $select ); ?>><?php _e( 'Two', 'twenty-seventeen-child' ); ?></option> |
80 |
<option value='three' <?php selected( 'three', $select ); ?>><?php _e( 'Three', 'twenty-seventeen-child' ); ?></option> |
81 |
<option value='four' <?php selected( 'four', $select ); ?>><?php _e( 'Four', 'twenty-seventeen-child' ); ?></option> |
82 |
</select>
|
83 |
</p>
|
84 |
</div><?php |
85 |
}
|
86 |
|
87 |
/* Save meta box data. */
|
88 |
public function save_page_template_meta( $post_id, $post ) { |
89 |
|
90 |
if ( ! ( isset( $_POST[ 'page_template_meta_box_nonce' ] ) && wp_verify_nonce( $_POST[ 'page_template_meta_box_nonce' ], basename( __FILE__ ) ) ) ) { |
91 |
return $post_id; |
92 |
}
|
93 |
|
94 |
if ( ! current_user_can( 'edit_post', $post_id ) ) { |
95 |
return $post_id; |
96 |
}
|
97 |
|
98 |
if( 'page' != $post->post_type ) { |
99 |
return $post_id; |
100 |
}
|
101 |
|
102 |
$page_template_text_value = isset( $_POST[ 'page-template-text' ] ) ? $_POST[ 'page-template-text' ] : ''; |
103 |
update_post_meta( $post_id, 'page_template_text', $page_template_text_value ); |
104 |
|
105 |
$page_template_textarea_value = isset( $_POST[ 'page-template-textarea' ] ) ? $_POST[ 'page-template-textarea' ] : ''; |
106 |
update_post_meta( $post_id, 'page_template_textarea', $page_template_textarea_value ); |
107 |
|
108 |
$page_template_chk_value = isset( $_POST[ 'page-template-chk' ] ) ? $_POST[ 'page-template-chk' ] : ''; |
109 |
update_post_meta( $post_id, 'page_template_chk', $page_template_chk_value ); |
110 |
|
111 |
$page_template_radio_value = isset( $_POST[ 'page-template-align' ] ) ? $_POST[ 'page-template-align' ] : ''; |
112 |
update_post_meta( $post_id, 'page_template_radio', $page_template_radio_value ); |
113 |
|
114 |
$page_template_select_value = isset( $_POST[ 'page-template-select' ]) ? $_POST[ 'page-template-select' ] : ''; |
115 |
update_post_meta( $post_id, 'page_template_select', $page_template_select_value ); |
116 |
}
|
117 |
}
|
118 |
|
119 |
$ts_child_theme = new DPT_Twenty_Seventeen_Child(); |
120 |
$ts_child_theme->init(); |
A kirakós utolsó darabjaként használjuk a meta doboz vezérlő adatait az oldalsablonunkban, a front enden. Nyisd meg a test-page-template.php
fájlt, melyet az 1. részben csináltunk, s cseréld ki a tartalmát ezzel a frissített kóddal:
1 |
<?php
|
2 |
/**
|
3 |
* Template Name: Test Page Template
|
4 |
*
|
5 |
* @package WordPress
|
6 |
* @subpackage Twenty_Seventeen
|
7 |
* @since 1.0
|
8 |
*/
|
9 |
|
10 |
get_header(); ?> |
11 |
|
12 |
<div class="wrap"> |
13 |
<div id="primary" class="content-area"> |
14 |
<main id="main" class="site-main" role="main"> |
15 |
|
16 |
<?php
|
17 |
while ( have_posts() ) : the_post(); |
18 |
|
19 |
$text = get_post_meta( get_the_ID(), 'page_template_text', true ); |
20 |
$textarea = get_post_meta( get_the_ID(), 'page_template_textarea', true ); |
21 |
$checkbox = get_post_meta( get_the_ID(), 'page_template_chk', true ); |
22 |
$radio = get_post_meta( get_the_ID(), 'page_template_radio', true ); |
23 |
$select = get_post_meta( get_the_ID(), 'page_template_select', true ); |
24 |
|
25 |
echo "<p>Text Box: " . $text . "</p>"; |
26 |
echo "<p>Text Area: " . $textarea . "</p>"; |
27 |
echo "<p>Checkbox: " . $checkbox . "</p>"; |
28 |
echo "<p>Radio Buttons: " . $radio . "</p>"; |
29 |
echo "<p>Dropdown: " . $select . "</p>"; |
30 |
|
31 |
echo "<h2>Sitemap</h2>"; |
32 |
echo "<ul>" . wp_list_pages( array( 'title_li' => '' ) ) . "</ul>"; |
33 |
|
34 |
endwhile; // End of the loop. |
35 |
?>
|
36 |
|
37 |
</main><!-- #main --> |
38 |
</div><!-- #primary --> |
39 |
</div><!-- .wrap --> |
40 |
|
41 |
<?php get_footer(); |
Győződj meg arról, hogy a 'Test Page Template' az aktuálisan kiválasztott oldalsablon, s nézd meg az oldalt a front enden.



Ahogy láthatod, az oldalsablon most már tartalmazza azokat az adatokat, melyet nemrég állítottál be a meta doboz vezérlőinél az oldalszerkesztőben. Ez az alapja az oktatósorozat további részének, mivel ebből az alap példából fogunk építkezni, s számos változatát fogjuk létrehozni a teljesen működőképes dinamikus oldalsablonnak, melyeket felhasználhatsz majd a saját WordPress projektjeidben.
Konklúzió
Ebben az oktatóbejegyzésben bemutattuk, hogyan építs fel egy működő dinamikus oldalsablont. Jelenleg, habár tényleg működik, az alap oldalsablonunk nem nagyon hasznos.
A harmadik, s egyben utolsó részében ennek az oktatósorozatnak megmutatom, hogyan építs fel számos dinamikus oldalsablont, a kezdettől a befejezésig, melyet felhasználhatsz (s akár tovább is feljeszthetsz) a saját WordPress projektjeidben.
Ha bármilyen kérdésed lenne, kérlek, hagyj egy üzenetet alább a hozzászólásoknál. Kíváncsi vagyok az oktatóbejegyzéshez fűzött véleményedre!