Intereting Posts
Детская тема не загружает родительский макет Отображать вложения по ID в фрейме wp.media Система WP-Cron нарушена Цикл по умолчанию для цикла таксономии возвращает 1 запись вместо 8 получить сообщение о содержании конкретного сообщения по url В WordPress есть только первая страница категории Как получить сообщения в течение определенного года / даты (с SQL-запросом)? Исключить контент до «больше» на отдельных сообщениях Как использовать wp_dequeue_style () для стиля, помещенного в класс WP_Widget Как предотвратить использование персонализированного типа сообщений с использованием шаблона archive.php? Ограничить количество пользователей, возвращаемых при сортировке пользователей по последним функциям сообщений Управление настройками плагина в сети Почему переменная value emptry в $ _POST, но доступна в $ _REQUEST? Добавьте строку при нажатии каждого опубликованного изображения. Пользовательский URL таксономии перенаправляется на страницу с тем же именем

Доступный мета-флажок отмечен в другом файле

Поэтому в основном мне нужно получить доступ к значению checked (), чтобы загрузить разные части шаблона в моем файле single.php.

Это мой мета-бокс:

<?php function my_theme_add_meta_box_post_template_switcher() { dd_meta_box( 'my_theme-post-layout', __( 'Post template', 'my_theme' ), 'my_theme_show_post_template_switcher', 'post', 'normal', 'high' ); } add_action( 'add_meta_boxes', 'my_theme_add_meta_box_post_template_switcher'); function my_theme_show_post_template_switcher( $post ) { $template = get_post_meta( $post->ID, '_my_theme_post_template', true ); // Default template for new posts if( empty( $template ) ) { $template = 'default'; } wp_nonce_field( 'save_post_template', 'post_template' ); ?> <fieldset class="clearfix"> <div class="post-layout"> <label for="sidebar-left-post"> <input type="radio" id="sidebar-left-post" name="_my_theme_post_template" value="template-1" <?php checked( $template, 'template-1' ); ?> /> <img width="150" height="100" src="<?php echo get_template_directory_uri(); ?>/admin/images/left-sidebar.png" > <span> <?php _e( 'Sidebar left', 'my_theme' ); ?> </span> </label> </div> <div class="post-layout"> <label for="full-width-post"> <input type="radio" id="full-width-post" name="_my_theme_post_template" value="template-2" <?php checked( $template, 'template-2' ); ?> /> <img width="150" height="100" src="<?php echo get_template_directory_uri(); ?>/admin/images/full-width-layout.png" > <span> <?php _e( 'Full width', 'my_theme' ); ?> </span> </label> </div> </fieldset> <?php } function my_theme_save_post_template( $post_id ) { if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if( !isset( $_POST['post_template'] ) || !wp_verify_nonce( $_POST['post_template'], 'save_post_template' ) ) { return; } if( !current_user_can( 'edit_post' ) ) { return; } if( isset( $_POST['_my_theme_post_template'] ) ) { update_post_meta( $post_id, '_my_theme_post_template', esc_attr( strip_tags( $_POST['_my_theme_post_template'] ) ) ); } } add_action( 'save_post', 'my_theme_save_post_template' ); function my_theme_get_post_template_for_template_loader( $template ) { $post = get_queried_object(); if ( $post ) { $template = get_stylesheet_directory() . "/single.php"; } return $template; } 

Теперь мне нужно получить доступ к значениям checked (), поэтому в моем файле single.php я могу загружать разные части в соответствии со значением checked (), например:

  switch ( $checked ) { case checked( $template, 'template-1' ): get_template_part( 'inc/post-loops/template-1' ); break; case checked( $template, 'template-2' ) : get_template_part( 'inc/post-loops/template-2' ); default: get_template_part( 'inc/post-loops/template-1' ); break; } 

Вы не совсем поняли предложение switch , прочтите здесь .

 $template = get_post_meta( get_the_ID(), '_my_theme_post_template', true ); switch ( $template ) { case 'template-2': get_template_part( 'inc/post-loops/template-1' ); break; case 'template-1': get_template_part( 'inc/post-loops/template-2' ); break; default: // Neither values matched, do something else? break; } 

Если ваши настройки сохранены для каждой должности в get_post_meta , вы можете использовать get_post_meta для извлечения настроек и работы с ними.

Пример:

 $tmplt = get_post_meta($postID, 'template', true); switch ($tmplt) { case 1: get_template_part( 'inc/post-loops/template-1' ); break; case 2: get_template_part( 'inc/post-loops/template-2' ); break; default: get_template_part( 'inc/post-loops/template-1' ); break; }