• 14-12-2021, 01:57:27
    #1
    Yazılara otomatik anahtar kelime girsin diye eklediğim kod cpu tüketiyor, 10 çekirdek sunucu bile dayanmıyor direkt siteyi kitliyor.

    Bu kodu 1 ay önce paylasmıstım faydalı oldugu icin ama ben kullanamıyorum maalesef:

    /** * Function to automatically update the focus keyword with the post title */ function update_focus_keywords() {    $posts = get_posts(array(        'posts_per_page'    => -1,        'post_type'        => 'post' //replace post with the name of your post type    ));    foreach ($posts as $p) {        update_post_meta($p->ID, 'rank_math_focus_keyword', strtolower(get_the_title($p->ID)));    } }
    add_action('init', 'update_focus_keywords');

    Sorunsuz çalışıyor @CanYildirim; teşekkürler

    [COLOR=#D9DAE9][FONT=consolas]function update_focus_keywords() {[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]    $posts = get_posts(array([/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]        'posts_per_page' => 100,[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]        'post_type' => 'post'[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]    ));[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]    foreach($posts as $p){[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]        if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]                update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]        }[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]    }    [/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]}[/FONT][/COLOR]
    [COLOR=#D9DAE9][FONT=consolas]add_action( 'init', 'update_focus_keywords' );[/FONT][/COLOR]
  • 14-12-2021, 02:08:57
    #2
    function update_focus_keywords($offset = 0, $number = 100) {
        $posts = get_posts(array(
            'offset' => $offset,
            'posts_per_page' => $number,
            'post_type' => 'post'
        ));
        $count_posts = count($posts);
    
        foreach($posts as $p) {
            update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            $offset++;
        }
    
        if($count_posts === $number) {
            update_focus_keywords($offset);
        }
    }
    
    add_action( 'init', 'update_focus_keywords' );
    bir de bunu dener misin hocam ben bu şekilde limitli kullanıyorum belki yardımcı olabilir Stack'dan almıştım
  • 14-12-2021, 02:18:19
    #3
    SarSeoAgency adlı üyeden alıntı: mesajı görüntüle
    function update_focus_keywords($offset = 0, $number = 100) {
        $posts = get_posts(array(
            'offset' => $offset,
            'posts_per_page' => $number,
            'post_type' => 'post'
        ));
        $count_posts = count($posts);
    
        foreach($posts as $p) {
            update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            $offset++;
        }
    
        if($count_posts === $number) {
            update_focus_keywords($offset);
        }
    }
    
    add_action( 'init', 'update_focus_keywords' );
    bir de bunu dener misin hocam ben bu şekilde limitli kullanıyorum belki yardımcı olabilir Stack'dan almıştım
    Yok yine fark etmedi maalesef.
  • 14-12-2021, 02:22:11
    #4
    şunu dener misiniz? ne kadar post var bilmiyorum ama offsetlerle ilerlemek sorununuzu çözebilir. örnek veriyorum 500 limitli yapmak isterseniz sırasıyla çalıştırıp offseti arttırmak işinize yarayabilir.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            $keywords = [];
            if(get_the_tags($p->ID)){
                foreach((get_the_tags($p->ID)) as $tag) {
                    $keywords[] = strtolower($tag->name);
                }
                if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', implode(", ", array_unique($keywords)));
                }
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
    • Felix
    Felix bunu beğendi.
    1 kişi bunu beğendi.
  • 14-12-2021, 02:27:41
    #5
    CanYildirim adlı üyeden alıntı: mesajı görüntüle
    şunu dener misiniz? ne kadar post var bilmiyorum ama offsetlerle ilerlemek sorununuzu çözebilir. örnek veriyorum 500 limitli yapmak isterseniz sırasıyla çalıştırıp offseti arttırmak işinize yarayabilir.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            $keywords = [];
            if(get_the_tags($p->ID)){
                foreach((get_the_tags($p->ID)) as $tag) {
                    $keywords[] = strtolower($tag->name);
                }
                if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', implode(", ", array_unique($keywords)));
                }
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
    Sorun yaratmadı bu kod ama bu seferde doğru çalışmıyor.

    Normalde: ''örnek konu başlığı'' olarak eklemesi gerekiyor iken sadece ''örnek'' ''örnek2'' şeklinde ekliyor şuan.
  • 14-12-2021, 02:29:33
    #6
    Peace adlı üyeden alıntı: mesajı görüntüle
    Sorun yaratmadı bu kod ama bu seferde doğru çalışmıyor.

    Normalde: ''örnek konu başlığı'' olarak eklemesi gerekiyor iken sadece ''örnek'' ''örnek2'' şeklinde ekliyor şuan.
    Anahtar kelimeler için ayarlıydı, post title için şunu ekleyebilirsiniz.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
    • Felix
    Felix bunu beğendi.
    1 kişi bunu beğendi.
  • 14-12-2021, 02:33:51
    #7
    CanYildirim adlı üyeden alıntı: mesajı görüntüle
    Anahtar kelimeler için ayarlıydı, post title için şunu ekleyebilirsiniz.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
    Şimdi böyle ekliyor ama buna da şükür, teşekkür ederim üstad sağ olasın.
    post per pagenin calısma mantıgı nedir acaba tam olarak? son 100 yazıyı mı kontrol edip ekleme yapıyor?
  • 14-12-2021, 02:35:51
    #8
    Peace adlı üyeden alıntı: mesajı görüntüle
    Şimdi böyle ekliyor ama buna da şükür, teşekkür ederim üstad sağ olasın.
    post per pagenin calısma mantıgı nedir acaba tam olarak? son 100 yazıyı mı kontrol edip ekleme yapıyor?
    aynen hocam, son 100 postu getiriyor. sırasıyla offseti arttırabilirsiniz, post_per_page'nin üstüne ekledim.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'offset' => 100,
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
  • 14-12-2021, 02:37:00
    #9
    CanYildirim adlı üyeden alıntı: mesajı görüntüle
    aynen hocam, son 100 postu getiriyor. sırasıyla offseti arttırabilirsiniz, post_per_page'nin üstüne ekledim.

    function update_focus_keywords() {
        $posts = get_posts(array(
            'offset' => 100,
            'posts_per_page' => 100,
            'post_type' => 'post'
        ));
        foreach($posts as $p){
            if(!get_post_meta($p->ID, 'rank_math_focus_keyword', true)){
                    update_post_meta($p->ID,'rank_math_focus_keyword', $p->post_title);
            }
        }    
    }
    add_action( 'init', 'update_focus_keywords' );
    Peki bunu mu kullanmak daha iyi sizce yoksa üstteki mi?