在作者自己的作者页面上显示作者的帖子

时间:2014-07-24 作者:Ehsan

我有一个博客,可以发表任何哲学家的文章。每个哲学家都有一个专门的页面,其中包含关于他的信息。

我创建了一个名为“哲学家”的帖子类型。我想在每个哲学家的页面下显示其文章的标题,但由于每个哲学家都有许多文章,我只想显示10篇文章,并在另一个页面上显示其他文章。

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您只需使用默认作者即可。php页面来完成此操作。如果没有索引,请复制索引。php并将其重命名为author。php

现在,使用pre_get_posts 在作者页面中包含自定义文章类型。此代码包含在函数中。php

function cpt_on_author_page( $query ) {
    if ( !is_admin() && $query->is_author() && $query->is_main_query() ) {
        $query->set( \'post_type\', array( \'post\', \'philosopher\' ) );
        $query->set( \'posts_per_page\', 10 );
    }
}
add_action( \'pre_get_posts\', \'cpt_on_author_page\' );

SO网友:sunil

将此代码粘贴到模板中

    <?php
//if a certain page, then display posts authored by the logged in user
$page_title = \'Contributors Page\';
if ( is_user_logged_in()  && is_page($page_title) ) {
  global $current_user;
  get_currentuserinfo();
  echo \'User ID: \' . $current_user->ID . "\\n";
  $args=array(
    \'author\' => $current_user->ID,
    \'post_type\' => \'post\',
    \'post_status\' => \'publish, private\',
    \'posts_per_page\' => -1,
    \'caller_get_posts\'=> 1
  );
  $my_query = null;
  $my_query = new WP_Query($args);
  if( $my_query->have_posts() ) {
    echo \'Your Posts\';
    while ($my_query->have_posts()) : $my_query->the_post(); ?>
      <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
      <?php
    endwhile;
  }
  wp_reset_query();  // Restore global post data stomped by the_post().
}
?>

结束

相关推荐

正在删除POSTS表中的过滤器下拉列表(在本例中为Yoast SEO)

我不需要一个帖子类型的Yoast SEO元框,所以我用remove\\u meta\\u box()删除了它。通过使用manage\\u edit-custom\\u post\\u columns取消设置列,删除了post表中不需要的列,但仍保留下拉列表。有没有办法去掉它?当然,使用jQuery并不是那么难,但也许WP中内置了过滤器或其他东西?