来宾作者-如何在/作者/存档页面上显示帖子

时间:2015-01-23 作者:emkmail2

我使用了Advanced Custom Fields 插件,用于创建公司领导目录页面和管理简历页面的所有数据元素。

在网站博客上,管理层不会自己发布文章,但应该看起来好像他们已经发布了。我认为这种做法被称为“客座作者”——在WordPress网站上没有用户帐户的作者,网站管理员代表他们发布内容。

我希望发生的是:

当一位客座作者被选为该帖子的作者时ACF Custom Post Object), 输出其名称。该名称应链接到存档页面www.example。com/author/johndoe

  • 如果未选择任务作者,则默认为站点管理员的作者信息我对WordPress主题开发相对较新,一直在谷歌上寻找实现这一目标的方法。这两篇帖子是我能找到的最接近我的情况,但并不能解决我想做的事情:

    • Guest Author - How can I use custom fields to create guest author link?
    • Guest Author - How to modify my custom function code if the guest author URL will follow a particular pattern/format?

      更新一下,我就快到了。到目前为止,我已经成功地编写了一个自定义的作者帖子链接(如果存在来宾作者)。

      帖子作者和来宾作者的结果URL现在具有匹配的格式…

      post-author例如:www(dot)示例。com/author/johndoegest作者举例:www(dot)。com/作者/简·多伊

      现在我只需要弄清楚如何劫持作者存档页面来显示来自帖子作者或访客作者的帖子。

      功能。PHP代码:

      add_filter( \'the_author_posts_link\', \'custom_author_posts_link\' );
      
      function custom_author_posts_link($url) {
      
      `global $post;
      
      $post_object = get_field(\'post_author\');
      
      if ( $post_object ) {
      
      `// GUEST AUTHOR EXISTS - override post object to grab relevant guest author info
      global $post;
      $post = $post_object;
      setup_postdata( $post );
      
      $guest_author_slug = $post->post_name;
      $guest_author_name = get_field(\'team_member_name\');
      $guest_author_posts_link = site_url() . \'/author/\' .  $guest_author_slug;
      
      $guest_url = sprintf(
          \'<a href="%1$s" title="%2$s" rel="author">%3$s</a>\',
          esc_url( $guest_author_posts_link ),
          esc_attr( sprintf( __( \'Posts by %s\' ), $guest_author_name ) ),
          $guest_author_name
      );
      
      $guest_url = $link; 
      
      wp_reset_postdata(); // We\'re done here. Return to main $post object
      `
      
      }
      
      return $url;
      `
      
      }
      
      更新2我做了一些修改。我没有“劫持”作者存档页,而是修改了“the\\u author\\u posts\\u link”过滤器,在合适的情况下指向自定义帖子类型。现在,我的三种作者类型都有一个端点,我可以在这里显示他们的个人简历和活动。

      博客帖子使用高级自定义字段,其中包含从两种相关帖子类型(团队领导和来宾贡献者)中选择的拉入帖子对象。

      add_filter( \'the_author_posts_link\', \'custom_author_posts_link\' );
      
      function custom_author_posts_link($url) {
      
          global $post;
      
          // Check if a post author is defined in the post_author post object. If none is defined, override will     not occur and default post author will display    
          $post_object = get_field(\'post_author\');    
      
          if ( $post_object ) {
      
              // Post author exists. Override post object to grab relevant guest author info.
              global $post;
              $post = $post_object;
              setup_postdata( $post );
      
              $author_type = get_field(\'author_type\');
              $author_slug = $post->post_name;
              $author_name = get_field(\'author_name\');
      
              // Use the post author type to determine the author link 
              if ( strtolower($author_type) == \'guest contributor\' ){
                  $author_posts_link = site_url() . \'/guest-contributor/\' .  $author_slug;
              } else {
                  $author_posts_link = site_url() . \'/leadership-team/\' .  $author_slug;
              }
      
              // Format the link to return. This is based off the default filter (See WordPress: https://core.trac.    wordpress.org/browser/tags/4.1/src/wp-includes/author-template.php)    
              $guest_url = sprintf(    
                  \'<a href="%1$s" tit    le="%2$s" rel="author">%3$s</a>\',    
                  esc_url( $author_po    sts_link ),    
                  esc_attr( sprintf(     __( \'Posts     by %s\' ), $author_name ) ),    
                  $author_name    
              );    
      
              $url = $guest_url; 
      
              wp_reset_postdata(); // We\'re done here, return to main $post object
      
          }
      
          return $url;
      
      }
      

  • 2 个回复
    SO网友:user2961664

    您本可以节省大量工作,只需使用联合作者Plus插件即可。它具有来宾作者功能。您确实需要设置它们,但它们没有帐户/密码,并且它们可以有作者页面。(我与他们没有关联,只是在几个网站上使用。)

    SO网友:Mark Kaplun

    如果你想让某个东西表现得像一个“普通”的wordpress作者,那么最好的办法就是为它创建一个“虚拟”帐户,如果你真的想禁用登录它的可能性。对于以其他方式模拟功能的任何其他解决方案,您首先需要fully 理解你试图模仿的功能,用你自己的话“我对WordPress主题开发相对陌生”。。。。

    结束
    来宾作者-如何在/作者/存档页面上显示帖子 - 小码农CODE - 行之有效找到问题解决它

    来宾作者-如何在/作者/存档页面上显示帖子

    时间:2015-01-23 作者:emkmail2

    我使用了Advanced Custom Fields 插件,用于创建公司领导目录页面和管理简历页面的所有数据元素。

    在网站博客上,管理层不会自己发布文章,但应该看起来好像他们已经发布了。我认为这种做法被称为“客座作者”——在WordPress网站上没有用户帐户的作者,网站管理员代表他们发布内容。

    我希望发生的是:

    当一位客座作者被选为该帖子的作者时ACF Custom Post Object), 输出其名称。该名称应链接到存档页面www.example。com/author/johndoe

  • 如果未选择任务作者,则默认为站点管理员的作者信息我对WordPress主题开发相对较新,一直在谷歌上寻找实现这一目标的方法。这两篇帖子是我能找到的最接近我的情况,但并不能解决我想做的事情:

    • Guest Author - How can I use custom fields to create guest author link?
    • Guest Author - How to modify my custom function code if the guest author URL will follow a particular pattern/format?

      更新一下,我就快到了。到目前为止,我已经成功地编写了一个自定义的作者帖子链接(如果存在来宾作者)。

      帖子作者和来宾作者的结果URL现在具有匹配的格式…

      post-author例如:www(dot)示例。com/author/johndoegest作者举例:www(dot)。com/作者/简·多伊

      现在我只需要弄清楚如何劫持作者存档页面来显示来自帖子作者或访客作者的帖子。

      功能。PHP代码:

      add_filter( \'the_author_posts_link\', \'custom_author_posts_link\' );
      
      function custom_author_posts_link($url) {
      
      `global $post;
      
      $post_object = get_field(\'post_author\');
      
      if ( $post_object ) {
      
      `// GUEST AUTHOR EXISTS - override post object to grab relevant guest author info
      global $post;
      $post = $post_object;
      setup_postdata( $post );
      
      $guest_author_slug = $post->post_name;
      $guest_author_name = get_field(\'team_member_name\');
      $guest_author_posts_link = site_url() . \'/author/\' .  $guest_author_slug;
      
      $guest_url = sprintf(
          \'<a href="%1$s" title="%2$s" rel="author">%3$s</a>\',
          esc_url( $guest_author_posts_link ),
          esc_attr( sprintf( __( \'Posts by %s\' ), $guest_author_name ) ),
          $guest_author_name
      );
      
      $guest_url = $link; 
      
      wp_reset_postdata(); // We\'re done here. Return to main $post object
      `
      
      }
      
      return $url;
      `
      
      }
      
      更新2我做了一些修改。我没有“劫持”作者存档页,而是修改了“the\\u author\\u posts\\u link”过滤器,在合适的情况下指向自定义帖子类型。现在,我的三种作者类型都有一个端点,我可以在这里显示他们的个人简历和活动。

      博客帖子使用高级自定义字段,其中包含从两种相关帖子类型(团队领导和来宾贡献者)中选择的拉入帖子对象。

      add_filter( \'the_author_posts_link\', \'custom_author_posts_link\' );
      
      function custom_author_posts_link($url) {
      
          global $post;
      
          // Check if a post author is defined in the post_author post object. If none is defined, override will     not occur and default post author will display    
          $post_object = get_field(\'post_author\');    
      
          if ( $post_object ) {
      
              // Post author exists. Override post object to grab relevant guest author info.
              global $post;
              $post = $post_object;
              setup_postdata( $post );
      
              $author_type = get_field(\'author_type\');
              $author_slug = $post->post_name;
              $author_name = get_field(\'author_name\');
      
              // Use the post author type to determine the author link 
              if ( strtolower($author_type) == \'guest contributor\' ){
                  $author_posts_link = site_url() . \'/guest-contributor/\' .  $author_slug;
              } else {
                  $author_posts_link = site_url() . \'/leadership-team/\' .  $author_slug;
              }
      
              // Format the link to return. This is based off the default filter (See WordPress: https://core.trac.    wordpress.org/browser/tags/4.1/src/wp-includes/author-template.php)    
              $guest_url = sprintf(    
                  \'<a href="%1$s" tit    le="%2$s" rel="author">%3$s</a>\',    
                  esc_url( $author_po    sts_link ),    
                  esc_attr( sprintf(     __( \'Posts     by %s\' ), $author_name ) ),    
                  $author_name    
              );    
      
              $url = $guest_url; 
      
              wp_reset_postdata(); // We\'re done here, return to main $post object
      
          }
      
          return $url;
      
      }
      

  • 2 个回复
    SO网友:user2961664

    您本可以节省大量工作,只需使用联合作者Plus插件即可。它具有来宾作者功能。您确实需要设置它们,但它们没有帐户/密码,并且它们可以有作者页面。(我与他们没有关联,只是在几个网站上使用。)

    SO网友:Mark Kaplun

    如果你想让某个东西表现得像一个“普通”的wordpress作者,那么最好的办法就是为它创建一个“虚拟”帐户,如果你真的想禁用登录它的可能性。对于以其他方式模拟功能的任何其他解决方案,您首先需要fully 理解你试图模仿的功能,用你自己的话“我对WordPress主题开发相对陌生”。。。。

    相关推荐

    是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

    我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?