Tôi đang xây dựng trang Tùy chọn chủ đề cho chủ đề của mình và tôi đã quản lý để phần lớn trang hoạt động tốt. Nhưng bây giờ tôi đang cố gắng hiển thị và ẩn một số phần nhất định trong chủ đề của mình dựa trên hộp kiểm đơn giản. Một ví dụ:
Hiển thị thanh trượt nội dung đặc trưng? - Có không
Khi người dùng chọn có, tôi muốn kích hoạt đoạn mã sau trong một mẫu nhất định của chủ đề của mình:
<?php locate_template( array( 'includes/slider.php'), true ) ?>
Vậy làm thế nào tôi có thể bọc mã này để nó chỉ hiển thị khi nhấp vào Có? Tôi nghĩ đó là một loại tuyên bố có điều kiện nhưng bây giờ tôi có ý tưởng làm thế nào để tiếp cận điều này. Vì tôi không thể viết php, tôi cần một số trợ giúp về vấn đề này :) Tên của tùy chọn được gọi là bpslick_featured.
Cảm ơn trước!
@ Bowe
Bạn sẽ cần tạo một mảng trong chức năng tùy chọn của mình cho hộp kiểm và đặt cho nó một trạng thái mặc định và gán loại "hộp kiểm" cho nó. Đây là một ví dụ giả sử bạn đã có sẵn mã cho bảng quản trị
<?php
// Set variables for the options panel
$themename = "your_theme_name";
$themeshortname = "yt";
$mythemeoptions = array();
//The Option function
function cool_theme_options() {
global $themename, $themeshortname, $mythemeoptions;
$themeoptions = array (
array( "name" => __('Show featured content slider','your_theme_name'),
"desc" => __('When checked, the slider will be added to the home page.','your_theme_name'),
"id" => "show_featured_slider",
"std" => "false",
"type" => "checkbox"
),
);
}
//The Option Form
function my_cool_theme_admin() {
global $themename, $themeshortname, $themeoptions;
// Saved or Updated message
if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>';
if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>';
// The form
?>
<div class="wrap">
<h2><?php echo $themename; ?> Options</h2>
<form method="post">
<?php wp_nonce_field('theme-save'); ?>
<table class="form-table">
<?php foreach ($themeoptions as $value) {
// Output the appropriate form element
switch ( $value['type'] ) {
case 'text':
?>
<tr valign="top">
<th scope="row"><?php echo $value['name']; ?>:</th>
<td>
<?php foreach ($value['options'] as $key=>$option) {
if ($key == get_option($value['id'], $value['std']) ) {
$checked = "checked=\"checked\"";
} else {
$checked = "";
}
?>
<input type="radio" name="<?php echo $value['id']; ?>" value="<?php echo $key; ?>" <?php echo $checked; ?> /><?php echo $option; ?><br />
<?php } ?>
<?php echo $value['desc']; ?>
</td>
</tr>
<?php
break;
case "checkbox":
?>
<tr valign="top">
<th scope="row"><?php echo $value['name']; ?></th>
<td>
<?php
if(get_option($value['id'])){
$checked = "checked=\"checked\"";
} else {
$checked = "";
}
?>
<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
<?php echo $value['desc']; ?>
</td>
</tr>
<?php
break;
default:
break;
}
}
?>
</table>
<p class="submit">
<input name="save" type="submit" value="Save changes" class="button-primary" />
<input type="hidden" name="action" value="save" />
</p>
</form>
<form method="post">
<?php wp_nonce_field('theme-reset'); ?>
<p class="submit">
<input name="reset" type="submit" value="Reset" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
Tiếp theo thêm chức năng trong hàm.php gọi thanh trượt nếu hộp được chọn.
<?php
function cool_theme_slider_option() {
// load the custom options
global $themeoptions;
foreach ($themeoptions as $value) {
$$value['id'] = get_option($value['id'], $value['std']);
}
if ($show_featured_slider == 'true') {
locate_template( array( 'includes/slider.php'), true )
}
} // end function
add_action('wp_head', 'cool_theme_slider_option');
?>
Mã này chưa được kiểm tra để đảm bảo nó hoạt động chính xác như vậy nhưng có nghĩa là hiển thị một ví dụ cho việc sử dụng tùy chọn hộp kiểm trong chủ đề của bạn.