Intereting Posts
Как ограничить загрузку приложения конкретным пользователем? Что такое действие или фильтр для добавления информации в Permalink в Edit Post / Page? Листинг страниц, в которых используется конкретный шаблон Переводы WordPress Меню на мобильной версии не сбрасывается после выбора пункта меню Разрешить admin-ajax.php получать «application / json» вместо «x-www-form-urlencoded» Настройка пользовательской электронной почты От имени и адреса электронной почты в wp_email () Почему этот код приводит к исчезновению панели администратора? Как отобразить более короткую версию wp_editor? Особый порядок Как сделать эскизы загруженных анимированных gif-файлов НЕ анимированными Получить только определенное количество сообщений из WP_Query создать выпадающее меню в настройке темы из пользовательского db Помещение пробела между кнопками WordPress дает 404 страницы при прохождении аргумента за год, отличный от текущего года

Пользовательский шаблон страницы

Может ли кто-нибудь помочь мне создать собственный шаблон страницы?

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

Имя: (имя ключа)

Расположение: (ключ местоположения) и т. Д. …

Solutions Collecting From Web of "Пользовательский шаблон страницы"

Итак, первый шаг – создать шаблон страницы, это легкая часть, и здесь нет необходимости в обработке запросов, вы не меняете запрос, просто просматриваете страницу, которая уже находится в запросе, так что это простой случай создавая базовый цикл, например … (отмечая, что я разместил специальный комментарий к шаблону страницы в верхней части кода).

ПРИМЕЧАНИЕ. Когда вы сохраняете этот файл в папке своей темы, не указывайте ему имя файла шаблона темы, поэтому не называйте его category.php или archive.php (любое имя файла, родное темам WordPress), вместо этого используйте что-то уникальное, например. customfields-template.php (или что вам нравится).

<?php /** * Template Name: CustomField Table */ get_header(); ?> <div id="container"> <div id="content"> <?php if( have_posts() ) : ?> <?php while( have_posts() ) : the_post(); ?> <h2><?php the_title(); ?></h2> <?php // Array of custom fields to get(so enter your applicable field keys here) $fields = array( 'field-one', 'field-two' ); // Array to hold data $custom_fields = array(); // Loop over keys and fetch post meta for each, store into new array foreach( $fields as $custom_field_key ) $custom_fields[$custom_field_key] = get_post_meta( $post->ID, $custom_field_key, true ); // Filter out any empty / false values $custom_fields = array_filter( $custom_fields ); // If we have custom field data if( !empty( $custom_fields ) ) $c = 0; ?> <table> <thead> <tr> <th>Field</th> <th>Value</th> </tr> </thead> <tbody> <?php foreach( $custom_fields as $field_name => $field_value ) : $c++; ?> <tr<?php echo ( $c % 2 == 0 ) ? ' class="alt"' : '' ; ?>> <td><?php echo $field_name ?></td> <td><?php echo $field_value ?></td> </tr> <?php endforeach; ?> </tbody> <tfoot> <tr> <th>Field</th> <th>Value</th> </tr> </tfoot> </table> <div <?php post_class(); ?>><?php the_content(); ?></div> <?php endwhile; ?> <?php endif; ?> </div> </div> <?php get_sidebar(); ?> <?php get_footer(); ?> 

Поскольку вы ищете конкретные клавиши и ожидаете особых значений, самая простая и get_post_meta функция, которую я чувствую использовать, будет get_post_meta , эта функция может выбирать несколько или одиночные значения для одного настраиваемого ключа поля (и автоматически исключает личные мета-ключи, которые вы 'd иначе получить с функциями get_post_custom_ .

Подробнее об этих функциях можно найти здесь.
http://codex.wordpress.org/Custom_Fields#Function_Reference

Создайте простой массив настраиваемых полевых ключей, чтобы выбрать данные, затем get_post_meta их, вызвав get_post_meta с каждой итерацией. Соберите эти метаданные и поместите их в новый массив, чтобы впоследствии можно было легко фильтровать пустые / ложные результаты (а не повторять if( $var ) или if(!empty()) вызывает).

Далее проверьте, что новый массив имеет некоторые данные, выводит таблицу и цикл по новому массиву для построения строк данных.

Единственное, что вам нужно изменить, это эта строка (это мои имена тестовых полей).

 $fields = array( 'field-one', 'field-two' ); 

Например, чтобы получить пользовательские поля с ключами, именем, полом, заданием и описанием.

 $fields = array( 'name', 'gender', 'job', 'description' ); 

ЗАМЕТКИ:

  • Я позволил добавить чередующиеся классы в строки таблицы
  • Я предположил, что вы хотите, чтобы заголовок и контент были опубликованы (удалите, если не нужно)
  • HTML-разметка основана на теме TwentyTen, если ваша тема использует разную разметку, вам нужно будет обновить HTML-код по мере необходимости (или вы можете связать меня с одним из своих веб-страниц, и я реорганизую образец кода для вас)
  • Я не был уверен, как вы хотите, чтобы данные отображались в таблице, поэтому, если у вас было другое представление о том, как размещать данные в таблице, дайте мне знать, и я буду реорганизовывать код для вас.

Сообщите мне, есть ли у вас какие-либо вопросы относительно кода. 🙂