• 29-12-2020, 11:07:08
    #1
    İyi günler, panelden siteye blog yazısı ekletiyorum. Ama şu olayı yapamadım. Şimdi panelden yazı ekletirken kullanıcıya yazı ile alakalı Title, Description ve Keywords bilgilerini de girmesini istiyorum. SEO açısından iyi olsun diye. Sonra yazıyı ben blog-detay diye bir sayfada id değerine göre çekiyorum fakat header.php bende sabit. Yani tüm sayfalarda header.php aynı dosya. Bu header'da eğer açılan sayfa bir blog yazı sayfası ise meta taglarının o yazının verileri ile dolsun istiyorum. Bunu nasıl yapabilirim.
  • 29-12-2020, 12:40:50
    #2
    Üyeliği durduruldu
    Eğer doğru anladıysam anlatayım.
    header.php dosyanız şu şekilde olur:
    <html>
    <?php if(isset($blog_data)) { ?>
     <meta name="description" content="<?php echo htmlspecialchars($blog_data['description']) ?>">
     <meta name="keywords" content="<?php echo htmlspecialchars($blog_data['keywords']) ?>">
    <?php } ?>
    <body>
    header kodları vs...
    blog-detay.php de şu şekilde olur:
    <?php 
    // buraları siz veri tabanından çekersiniz.
    $blog_data = [
    'description' => 'Lorem ipsum dolor sit amet...',
    'keywords' => 'test, deneme'
    ];
    include 'header.php';
    ?>
    Anlatmak istediğim önce veriyi çekersiniz, sonra headerı include edersiniz.
  • 29-12-2020, 13:51:04
    #3
    Output Buffering araştırmalısınız.

    header.php dosyanıza örnek
    ...
    <title>%TITLE%</title>
    ...
    Detay dosyanıza örnek:
    <?php
    ob_start();
    include("header.php");
    $buffer=ob_get_contents();
    ob_end_clean();
    
    $title = "Sayfanın yeni başlığı";
    $buffer = preg_replace('/(<title>)(.*?)(</title>)/i', '$1' . $title . '$3', $buffer);
    
    echo $buffer;
  • 29-12-2020, 18:55:17
    #4
    awoken adlı üyeden alıntı: mesajı görüntüle
    Eğer doğru anladıysam anlatayım.
    header.php dosyanız şu şekilde olur:
    <html>
    <?php if(isset($blog_data)) { ?>
     <meta name="description" content="<?php echo htmlspecialchars($blog_data['description']) ?>">
     <meta name="keywords" content="<?php echo htmlspecialchars($blog_data['keywords']) ?>">
    <?php } ?>
    <body>
    header kodları vs...
    blog-detay.php de şu şekilde olur:
    <?php
    // buraları siz veri tabanından çekersiniz.
    $blog_data = [
    'description' => 'Lorem ipsum dolor sit amet...',
    'keywords' => 'test, deneme'
    ];
    include 'header.php';
    ?>
    Anlatmak istediğim önce veriyi çekersiniz, sonra headerı include edersiniz.
    Hocam çok teşekkürler yaptım.
  • 29-12-2020, 18:55:42
    #5
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Output Buffering araştırmalısınız.

    header.php dosyanıza örnek
    ...
    <title>%TITLE%</title>
    ...
    Detay dosyanıza örnek:
    <?php
    ob_start();
    include("header.php");
    $buffer=ob_get_contents();
    ob_end_clean();
    
    $title = "Sayfanın yeni başlığı";
    $buffer = preg_replace('/(<title>)(.*?)(</title>)/i', '$1' . $title . '$3', $buffer);
    
    echo $buffer;
    Çok teşekkürler. Mutlaka inceleyeceğim.