Создание стандарта пользовательских полей в пользовательском интерфейсе администратора

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1320

Вопрос

Я добавил несколько разных custom_post_types к моей установке WordPress 3. Все они немного отличаются от друг друга и должны хранить уникальную информацию в custom_fields. Анкет Но пока можно хранить product_id, другой не будет. У одного будет source_url а другой не будет. Вместо того, чтобы инструктировать моих редакторов, в какие пользовательские поля следует использовать с какими пользовательскими сообщениями, как я могу сделать каждый пользовательский пост включать его пользовательские поля как часть самого пользовательского интерфейса?

Если вы посетите "Daily_Cartoon", у вас будет экран, который запрашивает только заглавие, подпись, а также СМИ.
Если вы посетите "Daily_product", у вас будет экран, который запрашивает только заглавие, цена, резюме, так далее.

Это было полезно?

Решение

Привет @Jonathan Сэмпсон:

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

Как я уже упоминал выше, я работал над тем, который не предоставляет пользовательскому интерфейсу, подобному этому, вместо этого расширяемый API для сложных типов поля (и просты для распределения еще. Может быть, через несколько недель.

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

Вы также можете найти этот пост немного помощи:

Другие советы

Вы можете добавить Meta_boxes, чтобы хранить данные пользовательских полей. поскольку add_meta_box может быть установлен в соответствии с post_type Это позволит вам добавить различные meta_box в разные типы постов.

посмотри на это почта Для полного примера изменения пользовательского типа Post New/Edit Scree.

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

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

    add_action('init', 'limited_post_type');
function my_custom_limited_post_type() 
{
  $labels = array(
    'name' => _x('Limited Post Type', 'post type general name'),
    'singular_name' => _x('Film - DVD', 'post type singular name')
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','author','thumbnail','excerpt', 'page-attributes','custom-fields' ),
    'show_in_nav_menus' => true
  ); 
  register_post_type('limited_post_type', $args);
}

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

foreach ( $scope as $scopeItem ) {
       switch ( $scopeItem ) {
           case "post": {
             // Output on any post screen
             if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" || $post->post_type=="post" )
             $output = true;
             break;}              
            case "page": {
                  // Output on any page screen
                  if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="page-new.php" || $post->post_type=="page" )
            $output = true;
            break;}
             case "limited_post_type": {
                                // Output on limited post_type onlye
            if ((basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" && $post->post_type=="limited_post_type" ) || (basename( $_SERVER['SCRIPT_FILENAME'] )=="post.php" && $post->post_type=="film_dvd" ))
                   $output = true;
                   break;
                  }

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top