Online Kimya Özel Dersi Al

ÜCRET

KONU

TARİH

3.5 Şablon Parçaları ve Çeşitli Şablon Dosyaları

wordpress tema yapımı

Şablon Parçası Ne Demektir?

Şablon dosyaları genellikle, web sitenizin bir sayfasını baştan aşağıya tasarlar (Örn: single.php, archive.php, category.php…). Fakat bazı şablon dosyaları ise, tam bir sayfayı değil, sayfanın bir bölümünü tasarlar. Bu şekildeki şablon dosyalarına “Şablon Parçası” denir. Şablon parçaları, comments.php, header.php, footer.php, sidebar.php ve content-{link_adi}.php gibi dosyalardır. Bu dosyalar, diğer şablon dosyaları içerisinde kullanılırlar.


header.php

Bu dosya, sayfamızın baş kısmını, yani üst kısmını tasarlayan şablon parçasıdır. Sayfalarımızın <head>... </head> kısmı, dolayısıyla, sitemiz veya sayfalarımız hakkındaki meta bilgiler, JS veya CSS linkleri gibi veriler, genellikle web sitemizin ana menüsü ve ana menü etrafındaki içerikler, bu dosyada bulunur. Bir şablon dosyasına bu dosyayı çağırmak için, aşağıdaki şablon fonksiyonunu yazmamız yeterlidir.

get_header();

Genellikle web siteleri, aynı header.php şablonunu, bütün sayfalarında kullanılır. Ama, bazı sayfalarda, farklı bir sayfa üstü şablon kullanmak ta mümkündür. Bunu yapmanın yollarından biri de koşullu ifadeleri kullanmaktır.

Bu şablon, web sayfalarının en kritik şablonlarından biridir. Genellikle, sitelerin, ana menüleri, markalarını afişe ettikleri kısım, en göze çarpan reklam bölümleri gibi çok ciddi bölümler bu şablonda bulunur.

Aşağıda, Twenty Fifteen temasının header.php şablonu verilmiştir:

<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width">
    <link rel="profile" href="http://gmpg.org/xfn/11">
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    <!--[if lt IE 9]>
    <script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
    <![endif]-->
    <?php wp_head(); ?>
</head>
 
<body <?php body_class(); ?>>
  
<div id="page" class="hfeed site">
    <a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'twentyfifteen' ); ?></a>
 
<div id="sidebar" class="sidebar">
 
 <header id="masthead" class="site-header" role="banner">
 
  <div class="site-branding">

  <?php if ( is_front_page() && is_home() ) : ?>
 
   <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
 
 <?php else : ?>

    <a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
 
    <?php endif; $description = get_bloginfo( 'description', 'display' ); if ( $description || is_customize_preview() ) : ?>
 
    <?php echo $description; ?>
 
    <?php endif; ?>

   <button class="secondary-toggle"><?php _e( 'Menu and widgets', 'twentyfifteen' ); ?></button>

  </div><!-- .site-branding -->

 </header><!-- .site-header -->
 
 <?php get_sidebar(); ?>

</div><!-- .sidebar -->

<div id="content" class="site-content">

İlk bakışta, biraz karmaşık gibi gelse de, parça parça incelendiğinde yeterince basit bir kod yapısıdır. Sayfanın <head>...</head> kısmında, bazı meta bilgileri ve link bağlantıları düzenlenmiştir ve bu kısmın sonunda wp_head() fonksiyonu ile, functions.php dosyamız çağırılmıştır. Dolayısıyla functions.php dosyası içerisinde, eklediğimiz bütün CSS ve JavaScript dosyaları da çağırılmıştır.

Daha sonra, sayfamızın <body> kısmı başlamıştır:

<body <?php body_class(); ?>>

Burada body_class() fonksiyonuna dikkat edersek, bu fonksiyon, ekrandaki sayfanın türüne göre dinamik olarak CSS sınıfları oluşturur. Böylece, sayfalarımıza hatta teker teker içeriklerimize özel, CSS kodları yazmamızı kolaylaştırır.

body açıldıktan sonra, koşullu bir ifade ile, sayfa türüne göre, marka bilgileri verilmiştir. Daha sonra ana menü çekilmiş ve sitenin ana içeriği için bir <div id="content" class="site-content"> açılmıştır. Açılan bu div, temanın footer.php dosyasında kapatılacaktır.

footer.php

Tıpkı header.php dosyası gibi footer.php dosyası da bütün temaların genellikle kullandığı dosyalardan biridir. footer.php dosyası, web sayfalarının alt kısmını düzenlerler. Herhangi bir şablon dosyanıza footer.php dosyasını çekmek için yapmanız gereken, aşağıdaki şablon fonksiyonunu yazmaktır:

get_footer();

Diğer şablonlrada da yapabildiğimiz gibi, bu dosyada da, koşullu ifadeler kullanarak, çeşitli sayfa altı şablonları oluşturabilirsiniz.

Bir çok tasarımcı, bu şablonu, bileşen eklemek için kullanmaktadır.

Aşağıda, Twenty Fifteen temasına ait footer.php şablonu verilmiştir:

</div><!-- .site-content -->

 <footer id="colophon" class="site-footer" role="contentinfo"> 
  <div class="site-info">
   <?php /** * Twenty Fifteen temasının alt bölümünü özelleştirebilmek için eklenmiştir. * * @since Twenty Fifteen 1.0 */ do_action( 'twentyfifteen_credits' ); ?>
   <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' ); ?></a>
  </div><!-- .site-info -->
 </footer><!-- .site-footer -->
</div><!-- .site -->
 
<?php wp_footer(); ?>
 
</body>
</html>

404.php

Ziyaretçiniz, sitenizde bulunmayan bir sayfaya gitmek istediğinde, temanız onu, 404.php sayfasına yönlendirir. Eğer, temanızda bir 404.php sayfası yoksa, ziyaretçiniz doğrudan index.php sayfasına yönlendirilir.

Ziyaretçileriniz, genellikle, sıkıcı hata mesajlarından ve anlamsız sayfalardan hoşlanmazlar. Bu yüzden, 404.php şablonunu kullanarak, ziyaretçilerinize, yanlış veya kullanımdan kalkmış bir sayfada olduklarını özgün bir şekilde söyleyebilirsiniz. Hatta, bu sayfaya, bir site içi arama motoru ekleyerek, ekstra menüler koyarak ziyaretçilerinizi kayboldukları yerden çıkarabilirsiniz.

Aşağıda, Twenty Fifteen temasının 404.php sayfası verilmiştir:

get_header(); ?>
 
<div id="primary" class="content-area">
   <main id="main" class="site-main" role="main">
    <section class="error-404 not-found">
      <header class="page-header">
       <h1 class="page-title"><?php _e( 'Oops! Bu sayfa bulunamadı.', 'twentyfifteen' ); ?></h1>
     </header>
<!-- .page-header -->
     <div class="page-content">
<?php _e( 'Galiba burada birşey yok. Belki bir arama yapmak istersiniz?', 'twentyfifteen' ); ?>
      <?php get_search_form(); ?>
     </div><!-- .page-content -->
    </section><!-- .error-404 -->
  </main><!-- .site-main -->
</div><!-- .content-area -->
 
<?php get_footer(); ?>

comments.php

İçeriklerimize, güzel yorumlar almak, oldukça keyifli bir olaydır. Neyse ki, WordPress bize bu keyfi yaşatacak donanıma sahiptir. WordPress’in oldukça gelişmiş bir yorum sistemi vardır.

comments.php, yorumlar için kullanılan bir şablon parçasıdır. Yazılarımıza ya da sayfalarımıza yorum almak istediğimiz zaman bu şablonu kullanırız.

Hangi sınıflandırma türünden olursa olsun, arşiv sayfalarınızda yorum özelliği kullanamazsınız.

Yorumlama sistemi şablonu, bir sonraki dersimizde ayrıntılı olarak ele alınacaktır.

sidebar.php

sidebar.php dosyası, “sayfa yanı şablonu” olarak adlandırdığımız bir şablon parçasıdır. Genellikle, sayfalarımıza bileşen eklemek için kullanılır. Bu şablon parçasını, hangi sayfada kullanacağınız tamamen size bağlı olsa da, yaygın olarak, sayfaların, sağ veya sol kenarlarında, footer.php ve header.php içerisinde kullanılmaktadır.

Temanızda, bir sayfa yanı şablonu kullanmak için, önce, register_sidebars() fonksiyonunu kullanarak, en az bir sayfa yanı oluşturmanız gerekmektedir. Bu işlem genellikle, temanızın functions.php sayfasında yapılır.

Aşağıda Twenty Fifteen temasının sidebar.php dosyası verilmiştir:

if ( has_nav_menu( 'primary' ) || has_nav_menu( 'social' ) || is_active_sidebar( 'sidebar-1' ) ) : >
<div id="secondary" class="secondary"> 
 <?php if ( is_active_sidebar( 'sidebar-1' ) ) : >
  <div id="widget-area" class="widget-area" role="complementary">
   <?php dynamic_sidebar( 'sidebar-1' ); >
  </div><!-- .widget-area >
 <?php endif; >
</div><!-- .secondary -->
<?php endif; >

Yukarıda şablondan anlıyoruz ki, bu tema, functions.php dosyasında, “sidebar-1” adını vererek bir sayfa yanı kaydı yapmıştır. Bu şablonda da, sayfa yanının çağırılması için;

if ( has_nav_menu( 'primary' ) || has_nav_menu( 'social' ) || is_active_sidebar( 'sidebar-1' ) )

koşulları ileri sürülmüştür. Burada yine;

is_active_sidebar( 'sidebar-1' )

ifadesi ile, “sidebar-1 adındaki sayfa yanına bir bileşen eklenmişse” koşulu getirilmiştir. Yani, bu sayfa yanına, yönetim panelindeki Görünüm->Bileşenler sayfasına giderek, bir bileşen eklemediysek, bu koşul, false değeri alacaktır.

Kodun devamında;

<?php dynamic_sidebar( 'sidebar-1' ); >

ifadesi ile, “sidebar-1” adındaki sayfa yanı, functions.php dosyasından çağırılmış ve buraya eklenmiştir.

Artık bir sidebar.php dosyamız olduğuna göre, bu şablon parçasını, dilediğimiz şablonda kullanabiliriz. Bunun için;

get_sidebar();

yazmamız yeterlidir. Bu şablon fonksiyonu, sidebar.php dosyamızı alır çağırdığımız yere ekler.


content-{$parca_adi}.php

Bir çok tema, şablon dosyalarını küçük parçalar halinde oluşturmayı tercih etmektedir. Böyle temalar, kullandıkları şablon parçalarını genellikle content-{$parca_adi}.php dosyası şeklinde oluşturmakta ve bu dosyaları da template-parts adında bir klasörün içinde barındırmaktadır. Daha sonra, oluşturulan şablon parçaları, page.php, home.php, comments.php gibi temel şablon dosyalarının, uygun görülen yerlerinde çağırılmaktadır.

Bahsettiğimiz bu şablon parçalarının, en yaygın görülen örnekleri, content-post.php, content-page.php, content-portfolio.php, content-none.php gibi dosyalardır. Sıraladığımız bu dosya isimleri, WordPress’in tanıdığı veya şablon hiyerarşisine dahil olan isimler değildir. Yani, bir şablon parçası hazırlamak isterseniz, oluşturacağınız dosyaya isim verirken, kendinizi özgür hissedebilirsiniz.

Örneğin, single.php şablonunda, yazının yazarı hakkında bilgi vermek isteyelim ve bu amaçla, content-author.php adında bir şablon parçası oluşturalım. Bu dosyayı da temamızın ana dizininde bulunan template-parts klasörüne kayedettiğimizi kabul edelim. content-author.php dosyamızın kodları şöyle olsun (bu kodlar Twenty Nineteen temasından alınmıştır):

/**
 * The template for displaying Author info
 *
 * @package WordPress
 * @subpackage Twenty_Nineteen
 * @since 1.0.0
 */

if ( (bool) get_the_author_meta( 'description' ) ) : ?>
<div class="author-bio">
	<h2 class="author-title">
		<span class="author-heading">
			<?php
			printf(
				/* translators: %s: post author */
				__( 'Published by %s', 'twentynineteen' ),
				esc_html( get_the_author() )
			);
			?>
		</span>
	</h2>
	<p class="author-description">
		<?php the_author_meta( 'description' ); ?>
		<a class="author-link" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
			<?php _e( 'View more posts', 'twentynineteen' ); ?>
		</a>
	</p><!-- .author-description -->
</div><!-- .author-bio -->
<?php endif; ?>

Bu şablon parçasını, single.php şablonunda, dilediğimiz yere yerleştirmek için, şablon fonksiyonlarından biri olan get_template_part() fonksiyonunu şu şekilde kullanırız:

get_template_part('template-parts/content', 'author');

get_template_part() fonksiyonunun nasıl kullanıldığı ile ilgili ayrıntılı bilgi için tema dosyalarına bağlantı verme dersimizi okuyabilirsiniz.

DERSİN SONU

Kimya Özel Dersi Al

Yorum yaparak bize destek olabilirsiniz.

1 yorum: “3.5 Şablon Parçaları ve Çeşitli Şablon Dosyaları”

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu kadar HTML serbest:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>