Labs, WP Tricks

WordPress Kod Deposu

Herkese Merhaba, WP Kod Deposu, oluşturduğumuz html temayı wordpress’e eklerken kodlar üzerinde bazı değişiklikler yapmamız gerekiyor. Aşağıdaki kodlar; her wordpress tasarımının entegre işleminde gerekecek en temel kodlardır. INDEX.PHP Header Çağırma: […]

yzr: Hakkı Cengiz
A+ A A- okuma

Herkese Merhaba,
WP Kod Deposu, oluşturduğumuz html temayı wordpress'e eklerken kodlar üzerinde bazı değişiklikler yapmamız gerekiyor. Aşağıdaki kodlar; her wordpress tasarımının entegre işleminde gerekecek en temel kodlardır.

INDEX.PHP

  1. Header Çağırma:
    
                          <?php get_header(); ?>
                        
  2. Footer Çağırma:
    
                          <?php get_footer(); ?>
                        
  3. Sidebar Çağırma:
    
                          <?php get_sidebar(); ?>
                        
  4. Özel Sidebar:
    
                          <?php if ( is_active_sidebar( 'left-sidebar' ) ) : ?>
                          <ul id="sidebar">
                          <?php dynamic_sidebar( 'left-sidebar' ); ?>
                          </ul>
                          <?php endif; ?>
                        
  5. WP Tema içinden dosya çağırma:
    
                          <?php get_template_part('extra/sidebar-right'); ?>
                        
  6. PHP Tema içinden dosya çağırma:
    
                          <?php include( 'çağrılacak-dosya.php' ); ?>
                        

STYLE.CSS

  1. Temanızın Bilgilerini Tanımlama:
    
                          /*
                          Theme Name:   Tema Adı (Örnek Tema)
                          Theme URI:    Tema Linki
                          Author:       Tema Sahibi
                          Author URI:   Tema Sahibi URL
                          Description:  Tema Açıklama
                          Version:      Tema Versiyonu
    
                          Text Domain:  ornektema
                          Tags:         blog, portfolio, grid-layout, one-column, accessibility-ready
                          */
                        

HEADER.PHP

  1. Meta Charset: Türkçe karakter olayı vs.
    
                          <meta charset="<?php bloginfo( 'charset' ); ?>">
                        
  2. Title:
    
                          <?php wp_title( '|', true, 'right' ); ?>
                        
  3. Sitenizin Linki (Anasayfa):
    
                          <?php bloginfo('url'); ?>
                        
  4. Sitenizin Adı:
    
                          <?php bloginfo('name'); ?>
                        
  5. Sitenizin Açıklaması:
    
                          <?php bloginfo('description'); ?>
                        
  6. Tema Ana Konumu:
    
                          <?php bloginfo('template_directory'); ?>
                        
  7. Doğrudan Style.css Çağırma:
    
                          <?php bloginfo('stylesheet_url'); ?>
                        
  8. WP Arama Kutusu:
    
                          <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
                            <input type="text" name="s" id="s" />
                            <input type="button" value="" />
                          </form>
                        
  9. WordPress Eklentileri Çalışabilmesi İçin *:
    
                          <?php wp_head(); ?>
                          </head>
                        
  10. WordPress Eklentileri Çalışabilmesi İçin *:
    
                          <?php wp_footer(); ?>
                          </body>
                        
  11. Body Class:
    
                          <body <?php body_class(); ?>>
                        

YAZI DÖNGÜSÜ (Loop)

  1. Klasik Loop:
    
                          <?php
                          get_header();
                          if (have_posts()) :
                          while (have_posts()) :
                          the_post();
                          the_content();
                          endwhile;
                          endif;
                          get_sidebar();
                          get_footer();
                          ?>
                        
  2. Kategoriye Göre Loop:
    
                          <?php 
                            query_posts('showposts=6&orderby=date&cat=6'); 
                             if (have_posts()) : while (have_posts()) : the_post(); ?>
                              <a href="<?php the_permalink() ?>">
                                <?php the_title(); ?>
                              </a>
                            <?php endwhile;else : endif; 
                          ?>
                        
  3. Sayfada İki veya Daha Fazla Loop Olacaksa "the_query" etiketinin adı değiştirilerek bu kod kullanılabilir;:
                           
                            <?php 
                              $the_query = new WP_Query('showposts=6&orderby=date&cat=145');
                              if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
                                <?php the_title(''); ?>
                                <?php the_excerpt(''); ?>
                              <?php endwhile; ?>
                              <!-- end of the loop -->
                                <?php wp_reset_postdata(); ?>
                              <?php else : ?>
                                <p><?php esc_html_e( 'Hiç yazı yok.' ); ?></p>
                              <?php endif; 
                            ?> 
                          
  4. Farklı kategoriye ait posta farklı muamele:
    
                          <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                            <?php if (has_category('fikir',$post->ID)) : ?>
                              <div class="post-fikir">
                              ...</div>
                            <?php else: ?>
                              <div class="post">
                              ...</div>
                            <?php endif; ?>
                          <?php endwhile;else: ?>
                          <?php endif; ?>
                        

SINGLE.PHP

  1. Yazı ID:
    
                          <?php the_ID(); ?>
                        
  2. Yazı İçeriği Full:
    
                          <?php the_content(); ?>
                        
  3. Yazı İçeriği Özet:
    
                          <?php the_excerpt(); ?>
                        
  4. Yazı Başlığı:
    
                          <?php the_title(); ?>
                        
  5. Yazı Linki:
    
                          <?php the_permalink(); ?>
                        
  6. Yazı Kategorisi:
    
                          <?php the_category(', '); ?>
                        
  7. Yazı Okunma Sayısı (WpPostViews eklentisi gerekli):
    
                          <?php if(function_exists('the_views')) { the_views(); } ?>
                        
  8. Yazının Yazarı:
    
                          <?php the_author(); ?>
                        
  9. Yazarın Avatarı (loop içinde):
    
                          <?php echo get_avatar( get_the_author_meta( 'ID' ), 32 ); ?>
                        
  10. Yazarın Avatarı (loop dışında):
    
                          <?php 
                            global $current_user;
                            get_currentuserinfo();
                            echo get_avatar( $current_user->ID, 64 );
                          ?>
                        
  11. Yazı Öne Çıkan Görsel URL'si (standart):
    
                          <?php the_post_thumbnail_url( 'full' ); ?>
                          <?php the_post_thumbnail( 'full', array( 'class' => 'img-responsive' ) ); ?>
                        
  12. Öne Çıkan Görsel Varsa Şu Boyutlarda Gelsin (ozel-thumbnail) ve Lightbox içinde (custom-thumbnail) tanımlı büyük boyutta gözüksün, Yoksa Varsayılan Resim Gözüksün:
    
                          <?php 
                          if ( has_post_thumbnail() ) { 
                              $featured_img_url = get_the_post_thumbnail_url(get_the_ID(),'custom-thumbnail');
                          
                              echo '<a href="'.esc_url($featured_img_url).'" rel="lightbox">';
                              the_post_thumbnail('ozel-thumbnail'); 
                              echo '</a>'; 
                          
                          } else { ?>
                          
                            <img src="<?php bloginfo('template_directory'); ?>/images/pic07.jpg" alt="<?php the_title(); ?>" /> 
    
                          <?php } ?> 
                        
  13. Yorumlar:
    
                          <?php comments_template(); ?>
                        
  14. Etiketler:
    
                          <?php the_tags( 'Etiketler: ', ' • ', '<br />' ); ?>
                        
  15. Tüm Etiketler Bulutu:
    
                          <?php 
                            wp_tag_cloud(array(
                              'smallest' => 10,    //az kullanılan etiketin boyutu
                              'largest' => 18,     //sık kullanılan etiketin boyutu
                              'unit' => 'px',      //boyutlandırma birimi
                              'orderby' => 'name', //sıralama ölçünü "isim" (alfebetik)
                              'order' => 'ASC',    //Sıralama (A ile başlar)
                              'exclude' => 6       //Liste dışı kalacak olan etiket idsi (opsiyonel)
                              )); 
                          ?>
                        
  16. Yalnızca yazarın görebileceği 'Yazıyı Düzenle' linki:
    
                          <?php edit_post_link('Yazıyı Düzenle'); ?>
                        

FUNCTIONS.PHP

  1. Temel Kodlar:
    
                          <?php 
                            add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) ); 
                            add_theme_support( 'automatic-feed-links' );   
                            add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) );
                            add_theme_support( 'post-thumbnails' ); 
                            add_image_size( 'edit-thumb', 400, 220, true );
                            function ozel_excerpt_length( $length ) { return 22; } 
                            add_filter( 'excerpt_length', 'ozel_excerpt_length', 999 );
                          ?>
                        
  2. Sidebar Alanı Eklemek:
    
                          <?php 
                            /**
                            * Add a sidebar.
                            */
                            function hkk_sidebar_add() {
                              register_sidebar( 
                                array(
                                'name' => __( 'Sol Kenar' ),
                                'id' => 'sol-kenar',
                                'description' => __( 'Bu yan kenarı her sayfada solda görebiliriz.' ),
                                'before_widget' => '<section id="%1$s" class="widget %2$s">',
                                'after_widget' => '</section>',
                                'before_title' => '<header class="widgettitle major"><h2>',
                                'after_title' => '</h2></header>',
                                ) 
                              );
                            }
                            add_action( 'widgets_init', 'hkk_sidebar_add' );
                          ?>
                        
  3. Menu Alanı Eklemek:
    
                          <?php 
                            add_action( 'after_setup_theme', 'register_custom_nav_menus' );
                            function register_custom_nav_menus() {
                              register_nav_menus( array(
                                'pluginbuddy_mobile' => 'PluginBuddy Mobile Navigation Menu',
                                'footer_menu' => 'My Custom Footer Menu',
                              ) );
                            }
                          ?>
                        
  4. Anasayfa Loop'ta bazı kategorilerin çıkmasını engellemek:
    
                          <?php 
                            function excludeCat($query) { 
                              if ( $query->is_home ) {
                                $query->set('cat', '-193,-194,-217');
                              }
                              return $query;
                            }
                            add_filter('pre_get_posts', 'excludeCat'); 
                          ?>
                        
  5. Kategoriye göre farklı single göstermek:
    - Misal; Müzik kategorisinde olan yazı ile normal bi kategoriye ait yazının gösterimleri farklı olsun. Müzik yazısında player çıksın vesaire..
    Kullanımı: ardından single-category-yer-imleri.php adında dosya oluşturup içerisini düzenliyoruz.

    
                          <?php 
                            add_filter('single_template', 'check_for_category_single_template');
                            function check_for_category_single_template( $t ) {
                              foreach( (array) get_the_category() as $cat )  {
                                if ( file_exists(TEMPLATEPATH . "/single-category-{$cat->slug}.php") ) 
                                  return TEMPLATEPATH . "/single-category-{$cat->slug}.php";
                                if($cat->parent) {
                                  $cat = get_the_category_by_ID( $cat->parent );
                                  if ( file_exists(TEMPLATEPATH . "/single-category-{$cat->slug}.php") ) 
                                    return TEMPLATEPATH . "/single-category-{$cat->slug}.php";
                                }
                              }
                              return $t;
                            }
                          ?>
                        

PAGE.PHP

  1. Özel Sayfa Oluşturma:
    
                          <?php get_header();
                            /*
                             * Template Name: Display Authors
                            */
                          ?>
                        

BONUS

  1. Şuan ki sayfa şu ise:
    
                          <?php 
                          if ( is_front_page() && is_home() ) {
                            // Default homepage
                          } elseif ( is_front_page() ) {
                            // static homepage
                          } elseif ( is_home() ) {
                            // blog page
                          } else {
                            //everything else
                          } 
                          ?>
                        
  2. Üye Giriş Yapmışsa:
    
                          <?php if ( is_user_logged_in() ) { ?>
                              <a href="<?php echo wp_logout_url(); ?>">Çıkış</a>
                          <?php } else { ?>
                              <a href="/wp-login.php" title="Giriş Yap" rel="home">Giriş</a>
                          <?php } ?>
                        
  3. JQMIGRATE: Migrate is installed, version 1.4.0 HATASI:
    
                          <?php 
                            add_action( 'wp_default_scripts', function( $scripts ) {
                              if ( ! empty( $scripts->registered['jquery'] ) ) {
                                $scripts->registered['jquery']->deps = array_diff( $scripts->registered['jquery']->deps,
                                array( 'jquery-migrate' ) );
                              }
                            } );
                          ?>
                        
  4. HATASI: Sayfada boşluklar görünmesi:
    
    
                          a. klasik notepad.exe ile düzelt a. klasik notepad.exe ile düzelt
                          b.  ya da notepad++ da UTF-8 without BOM
                          c. Notepad++ yeni sürümlerinde gelen güncelleme ile artık UTF-8 Olarak Kodla'yı kullanıyoruz.
                          
                          WordPress <code> ya da <pre> Tagındaki Tırnak İşaretlerinin Otomatik Değişmesi
    
                          a. WP'nin dediğine göre bu olayı karakterlerin html kodunu kullanarak çözebilirmişiz. 
                          Bu da şöyle ki " yerine " yazacağız, ' yerine ise ' yazacağız. 
                          Tabii bunlar HTML kod kısmında. Kaynak: codex | diğer html karakter kodları
                          b. başka bi kaynakta bi abimiz olaya tertemiz çözüm getirmiş. Artık çalışmıyor. Kaynak: Fayazmiraz
                          c. Güncel Çözüm functions.php:
                          remove_filter('the_content', 'wptexturize');
                        
                        
0 Yorumları: Yorum Formunu:

Henüz yorum eklenmemiş.

Bi yoruma ne dersin ?

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir