代码之家  ›  专栏  ›  技术社区  ›  Galgóczi Levente

如果:false,如何获取下一个$args?

  •  1
  • Galgóczi Levente  · 技术社区  · 6 年前

    我是编程新手。。。(这个问题绝对是关于编程的,但我用的是wordpress)我试着说清楚:

    我有一个基于子域的多站点网络。如果用户发帖子到他们的站点,我会从当前帖子获得一个克隆到我的网络主页。这个克隆有一个规范的url,显示给原始post的内容,post slug也有concur(ID没有)

    示例: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 user posted:

       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;
    

    如果美元退出是假的,我如何得到下一个$MyPoST,因此MyStPr职务(1)-gt;ID?我怎样才能得到正确的$my_帖子?

    1 回复  |  直到 6 年前
        1
  •  0
  •   luca3003    6 年前

    不确定是否理解,但是您应该使用count($my_posts)获取我的帖子中的numer,然后使用for或while遍历完整的$my_帖子。

    像这样的:

        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;