Как получить следующие $ args, если if: false? - PullRequest
0 голосов
/ 05 июня 2018

Я новичок в программировании ... (Вопрос абсолютно о программировании, но я использую WordPress) Я стараюсь быть очень ясным:

У меня есть многоузловая сеть на основе поддоменов.Если пользователи размещают сообщения на своих сайтах, я получаю клон из текущего сообщения в мою домашнюю сеть.У этого клона есть канонический URL-адрес, который показывает исходное сообщение, и слизня поста также совпадает (идентификатор не указан).

пример: x отправлено пользователем:

   url: xusersite.network.com/4243345/this-is-slug-by-post-title
   canonical: xusersite.network.com/4243345/this-is-slug-by-post-title

Я получаю:

   url: network.com/123677745/this-is-slug-by-post-title
   canonical: xusersite.network.com/4243345/this-is-slug-by-post-title

Теперь я хочу получить ID поста клона на дочернем сайте по оригинальному сообщению ... поэтому у меня есть этот код:

   switch_to_blog( 1 );
   $canonical = 'xusersite.network.com/4243345/this-is-slug-by-post-title';
   $slug = 'this-is-slug-by-post-title'; // current slug
   $args = array(
     'name'        => $slug,
     'post_type'   => 'post',
     'post_status' => 'publish',
     'numberposts' => 1
   );
   $my_posts = get_posts($args);

Это нормально, но проблема, если другой пользователь опубликовал сообщение с таким же названием для своего блога, например: y отправил:

   url: yusersite.network.com/72543/this-is-slug-by-post-title
   canonical: yusersite.network.com/72543/this-is-slug-by-post-title

Я получил сообщение с таким же заголовком:

   url: network.com/776536556733/this-is-slug-by-post-title
   canonical: yusersite.network.com/72543/this-is-slug-by-post-title

Так что мойЗнание PHP теперь здесь, я могу сделать это:

   if( $my_posts ) :
     $cloneid = $my_posts[0]->ID;
     $clonecanonical = wp_get_canonical_url( $cloneid );
     if( $clonecanonical == $canonical ) :
     $exit = 'true';
     else : 
     $exit = 'false';
     endif;
   endif;

Как я могу получить следующие $ my_posts, так ID $ my_posts [1] ->, если $ exit равен false?Как я могу получить правильные $ my_posts?

1 Ответ

0 голосов
/ 05 июня 2018

Не уверен, что понял, но вы должны получить число постов в моих постах, используя count ($ my_posts), а затем использовать для или во время перебора полных $ my_posts.

что-то вроде этого:

    if( $my_posts ) :
    $numPosts=count($my_posts)
    //if $numPosts = 0 then $my_posts[0] does not exist
    //but if you are here $numPosts must be > 0
    if $numPosts > 0 {
        for ( $i = 0; $i < $numPosts; $i++ ){
            $cloneid = $my_posts[$i]->ID;
            $clonecanonical = wp_get_canonical_url( $cloneid );
            if( $clonecanonical == $canonical ) :
        $exit = $my_posts[$i]->ID;
    endif;
        }
    }
    endif;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...