• 03-08-2023, 23:18:28
    #1
    Selam dostlarım boş zamanlarımı değerlendierbilmek adına kendimi geliştirmeye her daim devam ediyorum. Hep uzak olduğum php sektörüne giriş yaptım ama baam diye. Neyse lafı uzatmayayım,
    kendi ihtiyaçlarımı ve isteklerimi karşılamak adına wordpress temaları yazmaya karar verdim ve ilk temamı dün bitirdim.
    Hoş güzel oldu herşey tam istediğim şekilde tıkır tıkır çalışıyor ve googlenin speed test sonuçlarıda muazzam aşağıya görsel bırakırım.

    Siz değerli php bilen üstat kardeşlerimize danışmak istediğim bir husus söz konusu.
    Size Bu örnek kodu iletiyorum:

    <div class="col-lg-9 pt-4">
           <h1><?php echo category_description(); ?></h1>
            <?php if ( have_posts()): ?>
    <table class="table table-borderless table-sm w-auto">
              <tbody><tr>
                <td>
                  <ul class="mb-0">
        <?php while (have_posts()) : the_post(); ?>
                    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> -<?php the_field('kategori_listeleme_basligi'); ?></li>
    <?php endwhile; ?>
                  </ul></td>
                  <td> <ul class="mb-0">
        <?php while (have_posts()) : the_post(); ?>
                    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> -<?php the_field('kategori_listeleme_basligi'); ?></li>
    <?php endwhile; ?>
                  </ul>
                </td>
              </tr>
            </tbody></table>
            
            
            <?php else: ?>
            Content not found
            <?php endif; ?>
          </div>
    Bu kod sorunsuz olarak çalışıyor fakat hem sağda hemde solda aynı başlıkları tekrarlıyor. Benim istediğim ise örnek veriyorum solda 1,2,3,4,5 başlıklı postları sıralıyorsa, sağda 6,7,8,9,10 şeklinde devam etmesini istiyorum. Bunu nasıl sağlayabilirim? bu arada kategori sayfası için gerekli bu kod.

    Şimdiden ilgilenen kardeşlerime teşekkür ederim phpde acemiyiz Bilmemek değil öğrenmemek ayıp öğrenmeye çalışıyorum. buraya kadar sağ soldan destek almadan geldim ama biraz destek alırsam çok daha iyi şeyler başabilirim.

    istediğim listeleme ss si:



    ssler:



  • 03-08-2023, 23:21:36
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <div class="col-lg-9 pt-4">
        <h1><?php echo category_description(); ?></h1>
    
        <?php
        // Tüm içerikleri bir diziye toplayalım
        $posts_array = array();
        while (have_posts()) {
            the_post();
            ob_start(); // Arabellek kullanarak içeriği bir değişkende toplayalım
            ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> - <?php the_field('kategori_listeleme_basligi'); ?></li>
            <?php
            $posts_array[] = ob_get_clean(); // İçeriği diziye ekleyelim
        }
    
        // İçeriği ikiye bölelim
        $halfway = ceil(count($posts_array) / 2);
        $left_column = array_slice($posts_array, 0, $halfway);
        $right_column = array_slice($posts_array, $halfway);
        ?>
    
        <?php if (have_posts()): ?>
            <table class="table table-borderless table-sm w-auto">
                <tbody>
                <tr>
                    <td>
                        <ul class="mb-0">
                            <?php foreach ($left_column as $post_content): ?>
                                <?php echo $post_content; ?>
                            <?php endforeach; ?>
                        </ul>
                    </td>
                    <td>
                        <ul class="mb-0">
                            <?php foreach ($right_column as $post_content): ?>
                                <?php echo $post_content; ?>
                            <?php endforeach; ?>
                        </ul>
                    </td>
                </tr>
                </tbody>
            </table>
        <?php else: ?>
            Content not found
        <?php endif; ?>
    </div>
  • 03-08-2023, 23:23:14
    #3
    turkerturk adlı üyeden alıntı: mesajı görüntüle
    <div class="col-lg-9 pt-4">
        <h1><?php echo category_description(); ?></h1>
    
        <?php
        // Tüm içerikleri bir diziye toplayalım
        $posts_array = array();
        while (have_posts()) {
            the_post();
            ob_start(); // Arabellek kullanarak içeriği bir değişkende toplayalım
            ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> - <?php the_field('kategori_listeleme_basligi'); ?></li>
            <?php
            $posts_array[] = ob_get_clean(); // İçeriği diziye ekleyelim
        }
    
        // İçeriği ikiye bölelim
        $halfway = ceil(count($posts_array) / 2);
        $left_column = array_slice($posts_array, 0, $halfway);
        $right_column = array_slice($posts_array, $halfway);
        ?>
    
        <?php if (have_posts()): ?>
            <table class="table table-borderless table-sm w-auto">
                <tbody>
                <tr>
                    <td>
                        <ul class="mb-0">
                            <?php foreach ($left_column as $post_content): ?>
                                <?php echo $post_content; ?>
                            <?php endforeach; ?>
                        </ul>
                    </td>
                    <td>
                        <ul class="mb-0">
                            <?php foreach ($right_column as $post_content): ?>
                                <?php echo $post_content; ?>
                            <?php endforeach; ?>
                        </ul>
                    </td>
                </tr>
                </tbody>
            </table>
        <?php else: ?>
            Content not found
        <?php endif; ?>
    </div>
    teşekkür ederim deniyorum hemen ama sadece kodu yazmanız pek işime yaramaz. biraz anlatırsak sevinirim yaptıklarımızı. amacım öğrenmek hazıra konmak değil.
  • 03-08-2023, 23:24:55
    #4
    wordpresten anlamıyorum fakat php de şu mantık ile yapılır.

    sorguyu çekerken sol tarafta şunu diyeceksiniz order by id desc limit 0,10
    sağ tarafta ise order by id desc limit 10,10

    yani sol tarafta ilk 10 veriyi sağ tarafta ise 10 veriden sonraki 10 veriyi göster dedik.
  • 03-08-2023, 23:27:24
    #5
    SNDizayn adlı üyeden alıntı: mesajı görüntüle
    wordpresten anlamıyorum fakat php de şu mantık ile yapılır.

    sorguyu çekerken sol tarafta şunu diyeceksiniz order by id desc limit 0,10
    sağ tarafta ise order by id desc limit 10,10

    yani sol tarafta ilk 10 veriyi sağ tarafta ise 10 veriden sonraki 10 veriyi göster dedik.
    mantık güzel ama işte tam olarak olmaz bu cunku bazı kategorilerde 10 dan fazla bazılarınad ise 10 dan az içerik var. bu seferde sıkıntı olur.
  • 03-08-2023, 23:29:43
    #6
    chat gpt ye attınız mı hocam kodu

    GPT:

    Anladığım kadarıyla, kategori sayfasında içerikleri sol ve sağ sütunlarda sıralı bir şekilde göstermek istiyorsunuz. Sol sütunda 1, 2, 3, 4, 5 başlıklı gönderiler varsa, sağ sütunda 6, 7, 8, 9, 10 şeklinde devam etmesini istiyorsunuz. Bunun için kodu biraz değiştirebilirsiniz.
    Aşağıdaki düzenlemelerle bu işlemi yapabilirsiniz:

    <div class="col-lg-9 pt-4">
      <h1><?php echo category_description(); ?></h1>
    
      <?php if (have_posts()): ?>
        <table class="table table-borderless table-sm w-auto">
          <tbody>
            <tr>
              <td>
                <ul class="mb-0">
                  <?php
                    $post_count = 1;
                    while (have_posts() && $post_count <= 5): the_post();
                  ?>
                  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> -<?php the_field('kategori_listeleme_basligi'); ?></li>
                  <?php $post_count++; endwhile; ?>
                </ul>
              </td>
              <td>
                <ul class="mb-0">
                  <?php
                    $post_count = 6;
                    while (have_posts() && $post_count <= 10): the_post();
                  ?>
                  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> -<?php the_field('kategori_listeleme_basligi'); ?></li>
                  <?php $post_count++; endwhile; ?>
                </ul>
              </td>
            </tr>
          </tbody>
        </table>
      <?php else: ?>
        Content not found
      <?php endif; ?>
    </div>
    Yukarıdaki kodda, ilk while döngüsü ile sol sütunda 1'den 5'e kadar olan başlıkları alırken, ikinci while döngüsüyle sağ sütunda 6'dan 10'a kadar olan başlıkları alıyoruz. $post_count değişkeni, her döngüde arttırılarak istediğimiz sıradaki gönderiyi almayı sağlar. Bu sayede, 1-5 ve 6-10 arasındaki başlıklar sırasıyla sol ve sağ sütunlarda gösterilir.
  • 03-08-2023, 23:31:31
    #7
    riwe adlı üyeden alıntı: mesajı görüntüle
    chat gpt ye attınız mı hocam kodu
    yok atmadım atayımmı
  • 03-08-2023, 23:31:52
    #8
    bycaos adlı üyeden alıntı: mesajı görüntüle
    mantık güzel ama işte tam olarak olmaz bu cunku bazı kategorilerde 10 dan fazla bazılarınad ise 10 dan az içerik var. bu seferde sıkıntı olur.
    verinin çıkacağı yerde sonsuz veri olmayacak bir limit belirtilmesi gerek sonuçta yani sol kısımda x adet veri göster sağ tarafta ise x adetten sonra ki verileri göster şeklinde bir sınır belirtilmesi gerek.
  • 03-08-2023, 23:32:32
    #9
    bycaos adlı üyeden alıntı: mesajı görüntüle
    yok atmadım atayımmı
    Yukarıdaki mesajımı düzenledim hocam bakabilirsiniz. Ben sizin yerinize attım