it-swarm.asia

Hem Yazılar hem de Sayfalar için Sayfa Özellikleri Paneline Şablon Eklemek?

Ana temamı aktif tema olarak tutmak isterim ancak kullanıcıların "Sayfa/Mesaj Öznitelikleri" paneliyle biraz farklı bir düzen seçmelerine izin verdim. İdeal olarak, bu düzeni ana temamın "styles" dizini altında kendi klasöründe saklamak istiyorum.

MyTheme> stiller> Özel Düzenim> style.css

Böylece "Sayfa Özellikleri" panelinde, "Özel düzenim" ... adında bir şablon görüyorum.

Ancak iki sorunum var ...

  1. "Çocuk" temasını "Sayfa Öznitelikleri" panelinde gösteremiyorum. (Sadece ana tema dizinimin altına bir klasör ekliyorum ve "style.css" değerine sahip bir Template: my_main_theme_directory dosyası yerleştiriyorum). Ancak hiçbir zaman "sayfa özellikleri" panelinde hiçbir şablon görünmüyor.

  2. POST düzenleyicide "Sayfa Öznitelikleri" panelini alamıyorum. Şablonun Mesajlar ve Sayfa 'ya uygulanmasına izin vermek istiyorum. Bu paneli posta editöründe nasıl edinebilirim?

3
Scott B

Doğru çocuk temaları yapmıyorsun. Alt tema, herkesin kullanması gereken tamamen ayrı bir temadır, ancak sağlamadığı tüm şablon parçaları için başka bir temaya dayanır. İstediğiniz şablonlar:

http://codex.wordpress.org/Theme_Development#Defining_Custom_Templates

Temel olarak, temanın kök dizininde (örneğin, foobar.php) yeni bir tema dosyası oluşturun:

/*
Template Name: Foobar
*/

Bu size Foobar adında yeni bir şablon verecektir (açıkçası, Foobar'ı istediğiniz şekilde değiştirin. Editör sayfasındaki açılır menüde görünecek olan ad budur).

Şu an itibariyle, WordPress gönderileri değil yalnızca sayfalar ve özel gönderi türleri için şablonları destekliyor. Mesajları kesmek için bir yazı meta kontrol etmek ve şablona çekmek gibi bu hack yolu vardır:

function my_post_templater($template){
  if( !is_single() )
    return $template;
  global $wp_query;
  $c_template = get_post_meta( $wp_query->post->ID, '_wp_page_template', true );
  return empty( $c_template ) ? $template : $c_template;
}

add_filter( 'template_include', 'my_post_templater' );

function give_my_posts_templates(){
  add_post_type_support( 'post', 'page-attributes' );
}

add_action( 'init', 'give_my_posts_templates' );

Bu kodu temanızın functions.php dosyasına yerleştirirseniz, çalışması gerekir (aslında tema klasörünüzde özel şablonlar varsa).

Alt temalar hakkında daha fazla bilgi için burayı okuyun:

http://codex.wordpress.org/Child_Themes

4
John P Bloch