• 17-02-2022, 15:10:34
    #1
    Toplu olarak seçtiğim postların URL lerinin sonuna sayı eklemek istiyorum.

    örnek olarak:
    domain.com/kategori/elma-nasil-yenir/
    domain.com/kategori/elma-nasil-yenir-23415623124/

    domain.com/kategori/portakal-soymanin-yollari/
    domain.com/kategori/portakal-soymanin-yollari-999092313412/

    bunu yapabileceğim plugin bilen var mı? bulk slug edit, bulk permalink edit gibi terimlerle aradım ama bulamadım. teşekkürler.
  • 17-02-2022, 15:19:56
    #2
    WordPress ayarlarından ben yanlış hatırlamıyorsam o yapılıyordu. Kalıcı bağlantılar üzerinden siz onu ayarlayabiliyordunuz diye biliyorum. Yanlışım varsa bilenler düzeltsin.
  • 17-02-2022, 15:22:57
    #3
    /%postname%/%year%/%second%/%minute%/
  • 17-02-2022, 15:23:21
    #4
    emrehandilekci adlı üyeden alıntı: mesajı görüntüle
    WordPress ayarlarından ben yanlış hatırlamıyorsam o yapılıyordu. Kalıcı bağlantılar üzerinden siz onu ayarlayabiliyordunuz diye biliyorum. Yanlışım varsa bilenler düzeltsin.
    evet yapılabiliyor ama bütün içerikler değişiyor öyle olunca. sadece belirlediğim postların sonuna rastgele sayı ekleyip yeniden yayınlamak istiyorum.
  • 17-02-2022, 15:42:15
    #5
    Developer
    Çalıştırmadan önce veritabanı yedeği almayı unutmayınız.

    Wordpress ana dizinine herhangi bir isimde php uzantılı olarak yükleyip çalıştırabilirsiniz. Tamamı güncellenince dosyayı ftp'den siliniz.

    <?php
    include('wp-config.php');
    foreach(get_posts(['numberposts' => -1]) as $val){
        $newslug = $val->post_name.'-'.random_int(100000, 999999);
        wp_update_post(['ID' => $val->ID,'post_name' => $newslug]);
        echo $val->post_name.' => '.$newslug.' olarak güncellendi.<br>';
    }
    ?>
  • 17-02-2022, 15:55:57
    #6
    brown adlı üyeden alıntı: mesajı görüntüle
    Çalıştırmadan önce veritabanı yedeği almayı unutmayınız.

    Wordpress ana dizinine herhangi bir isimde php uzantılı olarak yükleyip çalıştırabilirsiniz. Tamamı güncellenince dosyayı ftp'den siliniz.

    <?php
    include('wp-config.php');
    foreach(get_posts(['numberposts' => -1]) as $val){
        $newslug = $val->post_name.'-'.random_int(100000, 999999);
        wp_update_post(['ID' => $val->ID,'post_name' => $newslug]);
        echo $val->post_name.' => '.$newslug.' olarak güncellendi.<br>';
    }
    ?>
    merhabalar, teşekkürler kod için. php bilmiyorum ama şöyle bir kullanım doğru olur mu? istediğim postları editlemek istiyorum sadece. bunu da post id lerini yazarak yapmayı düşündüm.

    <?php
    include('wp-config.php');
    foreach(get_posts( array( 'include'   => '3,8,1,17') ) as $val){
    $newslug = $val->post_name.'-'.random_int(100000, 999999);
    wp_update_post(['ID' => $val->ID,'post_name' => $newslug]);
     echo $val->post_name.' => '.$newslug.' olarak güncellendi.<br>';
    }
    ?>
  • 17-02-2022, 16:22:30
    #7
    samutm adlı üyeden alıntı: mesajı görüntüle
    merhabalar, teşekkürler kod için. php bilmiyorum ama şöyle bir kullanım doğru olur mu? istediğim postları editlemek istiyorum sadece. bunu da post id lerini yazarak yapmayı düşündüm.

    <?php
    include('wp-config.php');
    foreach(get_posts( array( 'include'   => '3,8,1,17') ) as $val){
    $newslug = $val->post_name.'-'.random_int(100000, 999999);
    wp_update_post(['ID' => $val->ID,'post_name' => $newslug]);
     echo $val->post_name.' => '.$newslug.' olarak güncellendi.<br>';
    }
    ?>


    /%postname%/%year%%second%%minute%/
    şunu denedin mi?
  • 17-02-2022, 16:30:00
    #8
    SacmaSapan adlı üyeden alıntı: mesajı görüntüle
    /%postname%/%year%%second%%minute%/
    şunu denedin mi?
    yukarıdaki kod ile yapmak istediğimi yaptım. siz tam olarak anlamadınız. sizin metot bütün URL'leri değiştiriyor. ben sadece istediğim postların url-lerinin sonuna sayı eklemek istiyordum, yaptım. ayrıca @brown; paylaştığı kod ile bir çok şeyi yaptım. istediğim postların başlığını toplu olarak değiştirdim. yayınlanma tarihlerine kadar değiştirebildim.
  • 17-02-2022, 16:38:30
    #9
    Developer
    samutm adlı üyeden alıntı: mesajı görüntüle
    merhabalar, teşekkürler kod için. php bilmiyorum ama şöyle bir kullanım doğru olur mu? istediğim postları editlemek istiyorum sadece. bunu da post id lerini yazarak yapmayı düşündüm.

    <?php
    include('wp-config.php');
    foreach(get_posts( array( 'include'   => '3,8,1,17') ) as $val){
    $newslug = $val->post_name.'-'.random_int(100000, 999999);
    wp_update_post(['ID' => $val->ID,'post_name' => $newslug]);
     echo $val->post_name.' => '.$newslug.' olarak güncellendi.<br>';
    }
    ?>
    bkz: https://developer.wordpress.org/reference/functions/get_posts/
    include parametresi array almalıdır. yani '3,8,1,7' yerine [3,8,1,7] olarak vermelisiniz. wp_update_post fonksiyonu önüne çift slash atarak işlemi yapmadan önce hangi postlar geliyor test edebilirsiniz.