Intereting Posts
Новый WP_Query не изолирует пользовательские типы сообщений на шаблоне на первой странице Отправка данных формы через PHPMailer – Как выполнить скрипт PHP из формы Admin AJAX не работает на странице администрирования плагинов – даже если код скопирован дословно из WordPress Codex как определить многоуровневую установку Как удалить в базе данных WordPress все сообщения, кроме последних трех? Как троичный оператор работает в сообщении цикла wordpress? Проблема создания простого плагина Google Maps Как остановить загрузку собственных файлов скриптов для wordpress iframe? Понимание и использование обменов в сообщениях in_category ('category-sluga') возвращает true для страницы архива категории 'category-slugb' Переопределение петли с фильтром или крюком Домашняя страница перенаправления / страница / 1 / в / блог / страница / 1 / Как получить значение, хранящееся в многомерном массиве, и SUM записи? Получение изображений из галереи NextGEN WPMU Hook для архивации или деактивации блога?

WordPress Change Post Templates, но не выпадающий, но выбор изображения

Я просмотрел WordPress Codex и нашел что-то вроде этого →

function is_page_template( $template = '' ) { $page_template = get_page_template_slug( get_queried_object_id() ); if ( empty( $template ) ) return (bool) $page_template; if ( $template == $page_template ) return true; if ( is_array( $template ) ) { if ( ( in_array( 'default', $template, true ) && ! $page_template ) || in_array( $page_template, $template, true ) ) { return true; } } return ( 'default' === $template && ! $page_template ); } 

Я думаю, что если мы вставим вышеприведенное в наши functions.php, у нас будут варианты шаблонов сообщений, правильно?

но что, если мы хотим выбрать шаблон типа post с изображениями вроде этого → введите описание изображения здесь Это изображение из исходной страницы почтового сервера генезиса.

Предоставляет ли WordPress такие соглашения? Я новичок, поэтому не мог понять. Как я могу это сделать?

Хотя логика мне понятна →

Шаг 1: Создайте Meta в бэкэнд, который будет иметь некоторые варианты выбора, такие как → введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

** Шаг 2 ** → мы должны связать наш вариант, выбранный в этом мета как-то, чтобы напечатать класс. Например, пусть u принимает образы в порядке, а затем, если второй выбран (второе изображение), тогда эхо «sidebar-wrap2», который является классом.

В настоящее время это HTML →

 <aside class="main-sidebar col"> <?php dynamic_sidebar( 'sidebar1' ); ?> </aside> <aside class="main-sidebar col <?php If certain condition true {echo "sidebar-wrap2"} ?> "> <?php dynamic_sidebar( 'sidebar1' ); ?> </aside> в <aside class="main-sidebar col"> <?php dynamic_sidebar( 'sidebar1' ); ?> </aside> <aside class="main-sidebar col <?php If certain condition true {echo "sidebar-wrap2"} ?> "> <?php dynamic_sidebar( 'sidebar1' ); ?> </aside> 

Хотя я не знаю, каково это определенное условие, и как это написать.

Я новичок в кодировании, поэтому, пожалуйста, простите меня. Если я не могу правильно представить свой вопрос. Благодаря!

Это глубокая функция, которую вы пытаетесь достичь, но я привел приведенную ниже информацию, которая поможет вам поработать над добавлением этой функции.

  1. Создайте настраиваемый meta_box с вашими параметрами для типа post, создайте мета-поле , это хорошая отправная точка, вы сможете больше Google по другим образцам
  2. Создание кнопки радиоизображения
  3. Вам нужно будет потянуть эту опцию в области отображения сообщений и проверить, какой вариант был сохранен, чтобы отобразить правильный макет, который вы хотите

Вам нужно будет указать какой-то код, как показано ниже, где вы возвращаете свой пост / с, если в файле single.php, но я бы добавил эту страницу в качестве дочерней темы, если вы не автор темы для будущих обновлений.

 // Get our option for post ID from the options meta box change "$field_name" to your option name you use in the meta box $post_id = get_post_meta(get_the_ID(),$field_name,true); // Check our option and change the display to what option is set if($post_id == 'sidebar1'){ dynamic_sidebar( 'sidebar1' ); } if($post_id == 'sidebar2'){ dynamic_sidebar( 'sidebar2' ); } else{ // Added for when an option is not set } 

введите описание изображения здесь

ОБНОВЛЕНИЕ 2:

Вот код плагина, который создаст мета-поле и добавит переключатель радиоизображения и сохранит данные, а также установил красную границу на выбранную опцию, если она полностью работает. Вы также захотите сделать некоторые из приведенных ниже действий для использования на живом сайте.

  1. Сохраните код в php-файле и добавьте в папку, готовую для загрузки на сайт
  2. Измените данные плагина, а также код по умолчанию, например custom_meta_box_markup
  3. Enque css в отдельный файл, а также использовать папку с изображениями, а затем ссылку на ваши собственные изображения

Код:

 <?php /** * Plugin Name: Post options panel * Plugin URI: url to plugin * Description: Adds posts options layout * Version: 1.0 * Author: My name * Author URI: My url * License: A "Slug" license name eg GPL12 */ // Dont call me direct! if ( ! defined( 'ABSPATH' ) ) exit; // Create content function custom_meta_box_markup($object) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <style> label > input{ /* HIDE RADIO */ visibility: hidden; /* Makes input not-clickable */ position: absolute; /* Remove input from document flow */ } label > input + img{ /* IMAGE STYLES */ cursor:pointer; border:2px solid transparent; } label > input:checked + img{ /* (RADIO CHECKED) IMAGE STYLES */ border:2px solid #f00; } </style> <div> <h4>Radio options</h4> <?php // U need to use this to set the checked="checked" $checkbox_value = get_post_meta($object->ID, "meta-box-radio", true); ?> <label> <input type="radio" name="meta-box-radio" value="sidebar1"<?php if($checkbox_value == 'sidebar1'){echo 'checked =\"checked\"';} ?> /><img src="http://3.bp.blogspot.com/-J7zDitJOPZs/VhysC9I9n7I/AAAAAAAAERk/fAMHsC2fiGI/s1600/grey_new_seo-18-512.png" style="height: 20px; width: 20px;"></label> <label> <input type="radio" name="meta-box-radio" value="sidebar2" <?php if($checkbox_value == 'sidebar2'){echo 'checked =\"checked\"';} ?>/><img src="http://3.bp.blogspot.com/-J7zDitJOPZs/VhysC9I9n7I/AAAAAAAAERk/fAMHsC2fiGI/s1600/grey_new_seo-18-512.png" style="height: 20px; width: 20px;"></label> <label> <input type="radio" name="meta-box-radio" value="sidebar3" <?php if($checkbox_value == 'sidebar3'){echo 'checked =\"checked\"';} ?>/><img src="http://3.bp.blogspot.com/-J7zDitJOPZs/VhysC9I9n7I/AAAAAAAAERk/fAMHsC2fiGI/s1600/grey_new_seo-18-512.png" style="height: 20px; width: 20px;"></label> </div> <? } // Saving data function save_custom_meta_box($post_id, $post, $update) { if (!isset($_POST["meta-box-nonce"]) || !wp_verify_nonce($_POST["meta-box-nonce"], basename(__FILE__))) return $post_id; if(!current_user_can("edit_post", $post_id)) return $post_id; if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE) return $post_id; $slug = "post"; if($slug != $post->post_type) return $post_id; if(isset($_POST["meta-box-radio"])) { $meta_box_value = $_POST["meta-box-radio"]; } update_post_meta($post_id, "meta-box-radio", $meta_box_value); } add_action("save_post", "save_custom_meta_box", 10, 3); function add_custom_meta_box() { add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "post", "normal", "high", null); } add_action("add_meta_boxes", "add_custom_meta_box"); 

Вот код, который вы можете использовать для сохранения опции

 // Get our option for post ID from the options meta box change "$field_name" to your option name you use in the meta box $post_option = get_post_meta(get_the_ID(),"meta-box-radio",true); // Check our option and change the display to what option is set if($post_option == 'sidebar1'){ dynamic_sidebar( 'sidebar1' ); } if($post_option == 'sidebar2'){ dynamic_sidebar( 'sidebar2' ); } else{ // Added for when an option is not set }