it-swarm.asia

Yönetici Arayüzünde Özel Alanların Standartlaştırılması

Wordpress 3 kurulumuma birkaç farklı custom_post_types ekledim. Hepsi birbirinden biraz farklıdır ve benzersiz bilgileri custom_fields içinde saklamalıdır. Fakat biri bir product_id saklayabilir, diğeri saklamaz. Birinde source_url olacak, diğeri olmayacak. Editörlerime hangi özel alanların hangi özel yayınlarla kullanılması gerektiği konusunda talimat vermek yerine, her özel yayını kullanıcı arayüzünün bir parçası olarak özel alanlarını nasıl dahil edebilirim?

Eğer "daily_cartoon" u ziyaret edersen sadece title , caption ve media 'ı soran bir ekrana sahip olursun.
"Daily_product" adresini ziyaret ederseniz, yalnızca title , price , summary , vb.

7
Sampson

Merhaba @Jonathan Sampson :

Özel Gönderi Türlerini daha kolay hale getirmek için birçok eklenti vardır ve bazıları da Özel Sıralamaları tanımlamanıza izin vermez:

Yukarıda da belirttiğim gibi, karmaşık alan tipleri için (ve basit olanlar için) bunun gibi bir Kullanıcı Arabirimi sağlamayan bir kullanıcı üzerinde çalışıyorum. Ancak bir paketlemeyi denemek için bir saat harcadıktan sonra hazır olmadığını fark ettim. Henüz dağıtım için. Belki birkaç hafta içinde.

Yukarıda listelenen bu eklentiler şu an için temel gereksinimlerinizi karşılamalıdır ve gelecekte benimkini kullanmaya karar vermeniz durumunda, madeni gelecekte bunların tümü tarafından depolanan verilerle uyumlu hale getirmeye çalışacağım.

Ayrıca bu yayını bir miktar yardım da bulabilirsiniz:

4
MikeSchinkel

özel alan verilerinin içinde saklanması için meta_box'lar ekleyebilirsiniz. add_meta_box post_type öğesine göre ayarlanabildiği için, farklı yazı tiplerine farklı meta_box eklemenizi sağlayacaktır.

////scree özel yazı tipini değiştirmenin tam bir örneği için post konusuna bakın.

5
hannit cohen

Geçenlerde bir tema içerisinde çalışırken çok benzer bir sorunu çözmem gerekiyordu. Kodun temeli şuydu post ve bazı kodları değiştirdim

Aşağıdaki, değiştirdiğim kodun ilk kısmı.

    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);
}

Aşağıdaki, değiştirdiğim kodun ikinci kısmı.

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;
                  }

İsterseniz, lütfen bana bir mesaj gönderin; memnuniyetle referansınız için size benimmiştir. Bu, kendimi çeken birçok gece kılından geçtiğim halde, bunu gerçekleştirmenin yolu budur.

0
jnolte