Support » Fixing WordPress » How to show all posts in a category?

  • Resolved badamreg

    (@badamreg)


    Hello,

    I was wondering how can I show all the posts I have in a category?

    The page I am talking about is this:

    http://mhrfweb.makett.org/MHRFWEB/?cat=9

    The page above has its separate category-9.PHP file to which I have made some customizations already (such as showing them descending from A-Z).

    After 20 posts I have to click “older posts”, this is what I would like to remove.

    Can someone please advise what should be updated or inserted and where? The code is below.

    Thank you!

    <?php
    
    /**
     * The main template file.
     *
     * This is the most generic template file in a WordPress theme
     * and one of the two required files for a theme (the other being style.css).
     * It is used to display a page when nothing more specific matches a query.
     * E.g., it puts together the home page when no home.php file exists.
     * Learn more: http://codex.wordpress.org/Template_Hierarchy
     *
     * @package Expound
     */
    
    get_header(); ?>
    
    <?php if ( is_home() && ! is_paged() ) : ?>
    <?php do_action( 'expound_home_title' ); ?>
    <?php elseif ( is_archive() || is_search() ) : // home & not paged ?>
    <header class="page-header">
    <h1 class="page-title">
    <?php
    if ( is_category() ) {
    printf( __( '%s', 'expound' ), '<span>' . single_cat_title( '', false ) . '</span>' );
    
    } elseif ( is_tag() ) {
    printf( __( 'Tag Archives: %s', 'expound' ), '<span>' . single_tag_title( '', false ) . '</span>' );
    
    } elseif ( is_author() ) {
    /* Queue the first post, that way we know
    * what author we're dealing with (if that is the case).
    */
    the_post();
    printf( __( 'Author Archives: %s', 'expound' ), '<span class="vcard"><a class="url fn n" href="' . get_author_posts_url( get_the_author_meta( "ID" ) ) . '" title="' . esc_attr( get_the_author() ) . '" rel="me">' . get_the_author() . '</a></span>' );
    /* Since we called the_post() above, we need to
    * rewind the loop back to the beginning that way
    * we can run the loop properly, in full.
    */
    rewind_posts();
    
    } elseif ( is_day() ) {
    printf( __( 'Daily Archives: %s', 'expound' ), '<span>' . get_the_date() . '</span>' );
    } elseif ( is_month() ) {
    printf( __( 'Monthly Archives: %s', 'expound' ), '<span>' . get_the_date( 'F Y' ) . '</span>' );
    } elseif ( is_year() ) {
    printf( __( 'Yearly Archives: %s', 'expound' ), '<span>' . get_the_date( 'Y' ) . '</span>' );
    } elseif ( is_search() ) {
    printf( __( 'Search Results for: %s', 'expound' ), '<span>' . get_search_query() . '</span>' );
    } else {
    _e( 'Archives', 'expound' );
    }
    ?>
    </h1>
    <?php
    if ( is_category() ) {
    // show an optional category description
    $category_description = category_description();
    if ( ! empty( $category_description ) )
    echo apply_filters( 'category_archive_meta', '<div class="taxonomy-description">' . $category_description . '</div>' );
    
    } elseif ( is_tag() ) {
    // show an optional tag description
    $tag_description = tag_description();
    if ( ! empty( $tag_description ) )
    echo apply_filters( 'tag_archive_meta', '<div class="taxonomy-description">' . $tag_description . '</div>' );
    }
    ?>
    </header><!-- .page-header -->
    <?php endif; ?>
    
    <?php
    if ( is_home() && ! is_paged() ) // condition should be same as in pre_get_posts
    get_template_part( 'featured-content' );
    ?>
    
    <div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">
    
    <?php if ( have_posts() ) : ?>
    <?php if (is_category()) { $posts = query_posts($query_string . '&orderby=title&order=asc'); } ?>
    
    <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
    
    <?php
    /* Include the Post-Format-specific template for the content.
    * If you want to overload this in a child theme then include a file
    * called content-___.php (where ___ is the Post Format name) and that will be used instead.
    */
    get_template_part( 'content', get_post_format() );
    ?>
    
    <?php endwhile; ?>
    
    <?php expound_content_nav( 'nav-below' ); ?>
    
    <?php elseif ( ! is_home() || is_paged() ) : ?>
    
    <?php get_template_part( 'no-results', 'index' ); ?>
    
    <?php else : ?>
    
    <?php
    $featured_posts = expound_get_featured_posts();
    if ( ! $featured_posts->have_posts() )
    get_template_part( 'no-results', 'index' );
    ?>
    
    <?php endif; ?>
    
    </div><!-- #content -->
    </div><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
Viewing 12 replies - 1 through 12 (of 12 total)
  • Your loop is looking for a custom template part:

    get_template_part( 'content', get_post_format() );

    Check in your content.php for anything to do with paging. If you could paste the code here I could help you locate it.

    Thread Starter badamreg

    (@badamreg)

    Hello & thanks for the pointer! I will have a look at home and paste the code if I cannot figure out myself.

    I had no idea I should look for it in another file.

    Thank you,

    Adam

    <?php if (is_category()) { $posts = query_posts($query_string . '&orderby=title&order=asc'); } ?>

    do not use query_posts() to change a main query,

    use 'pre_get_posts' https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

    PS:
    example code for functions.php of your (child) theme, to combine borh of your requirenments:

    function category_nine_sort_and_all( $query ) {
        if ( $query->is_home() && $query->is_main_query() $$ is_category( 9 ) ) {
            $query->set( 'orderby', 'title' );
            $query->set( 'order', 'ASC' );
            $query->set( 'posts_per_page', -1 );
        }
    }
    add_action( 'pre_get_posts', 'category_nine_sort_and_all' );

    untested

    Thread Starter badamreg

    (@badamreg)

    Your loop is looking for a custom template part:

    get_template_part( ‘content’, get_post_format() );

    Check in your content.php for anything to do with paging. If you could paste the code here I could help you locate it.

    Hi, I have checked the file but I have three actually: content, content-single and content-page.

    “content.php” is below, I did not found anything related to pagination.

    <?php
    /**
     * @package Expound
     */
    ?>
    
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    
    	<?php if ( has_post_thumbnail() ) : ?>
    	<div class="entry-thumbnail">
    		<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
    	</div>
    	<?php endif; ?>
    
    	<header class="entry-header">
    		<h1 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
    	</header><!-- .entry-header -->
    
    	<div class="entry-summary">
    		<?php the_excerpt(); ?>
    	</div><!-- .entry-summary -->
    
    	<footer class="entry-meta">
    		<?php expound_posted_in(); ?>
    	</footer><!-- .entry-meta -->
    </article><!-- #post-## -->

    Thank you.

    Thread Starter badamreg

    (@badamreg)

    do not use query_posts() to change a main query,

    use ‘pre_get_posts’ https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

    Hi,

    I am not sure if I have done it correctly as it does not work: the whole page says Server error 500…

    I updated the part you suggested in my category-9 file like this:

    <?php if (is_category()) { $posts = query_posts($query_string . '&orderby=title&order=asc'); } ?>

    Then updated my functions.php, tried two versions:

    a) added your code instead of the existing “pre_get_posts” section
    b) added your code before the existing “pre_get_posts” section

    Below is the full original file, if it is of any help.

    Thank you very much.

    <?php
    /**
     * Expound functions and definitions
     *
     * @package Expound
     */
    
    /**
     * Set the content width based on the theme's design and stylesheet.
     */
    if ( ! isset( $content_width ) )
    	$content_width = 700; /* pixels */
    
    /*
     * Load Jetpack compatibility file.
     */
    require( get_template_directory() . '/inc/jetpack.php' );
    
    if ( ! function_exists( 'expound_setup' ) ) :
    /**
     * Sets up theme defaults and registers support for various WordPress features.
     *
     * Note that this function is hooked into the after_setup_theme hook, which runs
     * before the init hook. The init hook is too late for some features, such as indicating
     * support post thumbnails.
     */
    function expound_setup() {
    
    	/**
    	 * Custom template tags for this theme.
    	 */
    	require( get_template_directory() . '/inc/template-tags.php' );
    
    	/**
    	 * Custom functions that act independently of the theme templates
    	 */
    	require( get_template_directory() . '/inc/extras.php' );
    
    	/**
    	 * Customizer additions
    	 */
    	require( get_template_directory() . '/inc/customizer.php' );
    
    	/**
    	 * Make theme available for translation
    	 * Translations can be filed in the /languages/ directory
    	 * If you're building a theme based on Mag, use a find and replace
    	 * to change 'expound' to the name of your theme in all the template files
    	 */
    	load_theme_textdomain( 'expound', get_template_directory() . '/languages' );
    
    	/**
    	 * Add default posts and comments RSS feed links to head
    	 */
    	add_theme_support( 'automatic-feed-links' );
    
    	/**
    	 * Editor styles for the win
    	 */
    	add_editor_style( 'css/editor-style.css' );
    
    	/**
    	 * Enable support for Post Thumbnails on posts and pages
    	 *
    	 * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
    	 */
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 220, 126 );
    	add_image_size( 'expound-featured', 460, 260);
    	add_image_size( 'expound-mini', 50, 50 );
    
    	/**
    	 * This theme uses wp_nav_menu() in one location.
    	 */
    	register_nav_menus( array(
    		'primary' => __( 'Primary Menu', 'expound' ),
    		'social' => __( 'Social Menu', 'expound' ),
    	) );
    
    	/**
    	 * Enable support for Post Formats
    	 */
    	add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) );
    
    	/**
    	 * Enable support for Custom Background
    	 */
    	add_theme_support( 'custom-background', array(
    		'default-color' => '333333',
    	) );
    }
    endif; // expound_setup
    add_action( 'after_setup_theme', 'expound_setup' );
    
    /**
     * BuddyPress styles if BP is installed
     */
    if ( function_exists( 'buddypress' ) ) {
    	require( get_template_directory() . '/inc/buddypress.php' );
    }
    
    /**
     * Register widgetized area and update sidebar with default widgets
     */
    function expound_widgets_init() {
    	register_sidebar( array(
    		'name'          => __( 'Sidebar', 'expound' ),
    		'id'            => 'sidebar-1',
    		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    		'after_widget'  => '</aside>',
    		'before_title'  => '<h1 class="widget-title">',
    		'after_title'   => '</h1>',
    	) );
    }
    add_action( 'widgets_init', 'expound_widgets_init' );
    
    /**
     * Enqueue scripts and styles
     */
    function expound_scripts() {
    	// Don't forget to bump the version numbers in style.css and editor-style.css
    	wp_enqueue_style( 'expound-style', get_stylesheet_uri(), array(), 20140129 );
    
    	wp_enqueue_script( 'expound-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true );
    
    	wp_enqueue_script( 'expound-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true );
    
    	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    		wp_enqueue_script( 'comment-reply' );
    	}
    
    	if ( is_singular() && wp_attachment_is_image() ) {
    		wp_enqueue_script( 'expound-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20120202' );
    	}
    
    	if ( has_nav_menu( 'social' ) ) {
    		wp_enqueue_style( 'expound-genericons', get_template_directory_uri() . '/css/genericons.css', array(), '20140127' );
    	}
    }
    add_action( 'wp_enqueue_scripts', 'expound_scripts' );
    
    /**
     * Implement the Custom Header feature.
     */
    require get_template_directory() . '/inc/custom-header.php';
    
    /**
     * Additional helper post classes
     */
    function expound_post_class( $classes ) {
    	if ( has_post_thumbnail() )
    		$classes[] = 'has-post-thumbnail';
    	return $classes;
    }
    add_filter('post_class', 'expound_post_class' );
    
    /**
     * Ignore and exclude featured posts on the home page.
     */
    function expound_pre_get_posts( $query ) {
    	if ( ! $query->is_main_query() || is_admin() )
    		return;
    
    	if ( $query->is_home() ) { // condition should be (almost) the same as in index.php
    		$query->set( 'ignore_sticky_posts', true );
    
    		$exclude_ids = array();
    		$featured_posts = expound_get_featured_posts();
    
    		if ( $featured_posts->have_posts() )
    			foreach ( $featured_posts->posts as $post )
    				$exclude_ids[] = $post->ID;
    
    		$query->set( 'post__not_in', $exclude_ids );
    	}
    }
    add_action( 'pre_get_posts', 'expound_pre_get_posts' );
    
    if ( ! function_exists( 'expound_get_featured_posts' ) ) :
    /**
     * Returns a new WP_Query with featured posts.
     */
    function expound_get_featured_posts() {
    	global $wp_query;
    
    	// Default number of featured posts
    	$count = apply_filters( 'expound_featured_posts_count', 5 );
    
    	// Jetpack Featured Content support
    	$sticky = apply_filters( 'expound_get_featured_posts', array() );
    	if ( ! empty( $sticky ) ) {
    		$sticky = wp_list_pluck( $sticky, 'ID' );
    
    		// Let Jetpack override the sticky posts count because it has an option for that.
    		$count = count( $sticky );
    	}
    
    	if ( empty( $sticky ) )
    		$sticky = (array) get_option( 'sticky_posts', array() );
    
    	if ( empty( $sticky ) ) {
    		return new WP_Query( array(
    			'posts_per_page' => $count,
    			'ignore_sticky_posts' => true,
    		) );
    	}
    
    	$args = array(
    		'posts_per_page' => $count,
    		'post__in' => $sticky,
    		'ignore_sticky_posts' => true,
    	);
    
    	return new WP_Query( $args );
    }
    endif;
    
    if ( ! function_exists( 'expound_get_related_posts' ) ) :
    /**
     * Returns a new WP_Query with related posts.
     */
    function expound_get_related_posts() {
    	$post = get_post();
    
    	// Support for the Yet Another Related Posts Plugin
    	if ( function_exists( 'yarpp_get_related' ) ) {
    		$related = yarpp_get_related( array( 'limit' => 3 ), $post->ID );
    		return new WP_Query( array(
    			'post__in' => wp_list_pluck( $related, 'ID' ),
    			'posts_per_page' => 3,
    			'ignore_sticky_posts' => true,
    			'post__not_in' => array( $post->ID ),
    		) );
    	}
    
    	$args = array(
    		'posts_per_page' => 3,
    		'ignore_sticky_posts' => true,
    		'post__not_in' => array( $post->ID ),
    	);
    
    	// Get posts from the same category.
    	$categories = get_the_category();
    	if ( ! empty( $categories ) ) {
    		$category = array_shift( $categories );
    		$args['tax_query'] = array(
    			array(
    				'taxonomy' => 'category',
    				'field' => 'id',
    				'terms' => $category->term_id,
    			),
    		);
    	}
    
    	return new WP_Query( $args );
    }
    endif;
    
    /**
     * Footer credits.
     */
    function expound_display_credits() {
    	$text = '<a href="http://wordpress.org/" rel="generator">' . sprintf( __( 'Proudly powered by %s', 'expound' ), 'WordPress' ) . '</a>';
    	$text .= '<span class="sep"> | </span>';
    	$text .= sprintf( __( 'Theme: %1$s by %2$s', 'expound' ), 'Expound', '<a href="http://kovshenin.com/" rel="designer">Konstantin Kovshenin</a>' );
    	echo apply_filters( 'expound_credits_text', $text );
    }
    add_action( 'expound_credits', 'expound_display_credits' );
    
    /**
     * Decrease caption width for non-full-width images. Pixelus perfectus!
     */
    function expound_shortcode_atts_caption( $attr ) {
    	global $content_width;
    
    	if ( isset( $attr['width'] ) && $attr['width'] < $content_width )
    		$attr['width'] -= 4;
    
    	return $attr;
    }
    add_filter( 'shortcode_atts_caption', 'expound_shortcode_atts_caption' );

    my mistake, I had a typing error in one line of the code:

    corrected:

    if ( $query->is_home() && $query->is_main_query() && is_category( 9 ) ) {

    I updated the part you suggested in my category-9 file like this:

    i.e. hopefully, you have removed the section from the file.

    thesuggested ‘pre_get_posts’ code could go anywhere into fucntions.php (obviously not interfering with any of the existing code).

    ideally, you would add the code in a functions.php of a child theme.

    Thread Starter badamreg

    (@badamreg)

    Thank you Michael, I will try it tomorrow.
    So I should just delete this in the category file:

    <?php if (is_category()) { $posts = query_posts($query_string . '&orderby=title&order=asc'); } ?>

    and then add your code to the functions.php?

    Thanks,

    Adam

    yes

    Thread Starter badamreg

    (@badamreg)

    Hello Michael,

    SO I have made bith updates below, and a strange thing has happened:

    Still only 20 posts per page are shown but thy are ordered by date starting from the most recent…

    <?php
    /**
     * Expound functions and definitions
     *
     * @package Expound
     */
    
    /**
     * Set the content width based on the theme's design and stylesheet.
     */
    if ( ! isset( $content_width ) )
    	$content_width = 700; /* pixels */
    
    /*
     * Load Jetpack compatibility file.
     */
    require( get_template_directory() . '/inc/jetpack.php' );
    
    if ( ! function_exists( 'expound_setup' ) ) :
    /**
     * Sets up theme defaults and registers support for various WordPress features.
     *
     * Note that this function is hooked into the after_setup_theme hook, which runs
     * before the init hook. The init hook is too late for some features, such as indicating
     * support post thumbnails.
     */
    function expound_setup() {
    
    	/**
    	 * Custom template tags for this theme.
    	 */
    	require( get_template_directory() . '/inc/template-tags.php' );
    
    	/**
    	 * Custom functions that act independently of the theme templates
    	 */
    	require( get_template_directory() . '/inc/extras.php' );
    
    	/**
    	 * Customizer additions
    	 */
    	require( get_template_directory() . '/inc/customizer.php' );
    
    	/**
    	 * Make theme available for translation
    	 * Translations can be filed in the /languages/ directory
    	 * If you're building a theme based on Mag, use a find and replace
    	 * to change 'expound' to the name of your theme in all the template files
    	 */
    	load_theme_textdomain( 'expound', get_template_directory() . '/languages' );
    
    	/**
    	 * Add default posts and comments RSS feed links to head
    	 */
    	add_theme_support( 'automatic-feed-links' );
    
    	/**
    	 * Editor styles for the win
    	 */
    	add_editor_style( 'css/editor-style.css' );
    
    	/**
    	 * Enable support for Post Thumbnails on posts and pages
    	 *
    	 * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
    	 */
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 220, 126 );
    	add_image_size( 'expound-featured', 460, 260);
    	add_image_size( 'expound-mini', 50, 50 );
    
    	/**
    	 * This theme uses wp_nav_menu() in one location.
    	 */
    	register_nav_menus( array(
    		'primary' => __( 'Primary Menu', 'expound' ),
    		'social' => __( 'Social Menu', 'expound' ),
    	) );
    
    	/**
    	 * Enable support for Post Formats
    	 */
    	add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) );
    
    	/**
    	 * Enable support for Custom Background
    	 */
    	add_theme_support( 'custom-background', array(
    		'default-color' => '333333',
    	) );
    }
    endif; // expound_setup
    add_action( 'after_setup_theme', 'expound_setup' );
    
    /**
     * BuddyPress styles if BP is installed
     */
    if ( function_exists( 'buddypress' ) ) {
    	require( get_template_directory() . '/inc/buddypress.php' );
    }
    
    /**
     * Register widgetized area and update sidebar with default widgets
     */
    function expound_widgets_init() {
    	register_sidebar( array(
    		'name'          => __( 'Sidebar', 'expound' ),
    		'id'            => 'sidebar-1',
    		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    		'after_widget'  => '</aside>',
    		'before_title'  => '<h1 class="widget-title">',
    		'after_title'   => '</h1>',
    	) );
    }
    add_action( 'widgets_init', 'expound_widgets_init' );
    
    /**
     * Enqueue scripts and styles
     */
    function expound_scripts() {
    	// Don't forget to bump the version numbers in style.css and editor-style.css
    	wp_enqueue_style( 'expound-style', get_stylesheet_uri(), array(), 20140129 );
    
    	wp_enqueue_script( 'expound-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true );
    
    	wp_enqueue_script( 'expound-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true );
    
    	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    		wp_enqueue_script( 'comment-reply' );
    	}
    
    	if ( is_singular() && wp_attachment_is_image() ) {
    		wp_enqueue_script( 'expound-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20120202' );
    	}
    
    	if ( has_nav_menu( 'social' ) ) {
    		wp_enqueue_style( 'expound-genericons', get_template_directory_uri() . '/css/genericons.css', array(), '20140127' );
    	}
    }
    add_action( 'wp_enqueue_scripts', 'expound_scripts' );
    
    /**
     * Implement the Custom Header feature.
     */
    require get_template_directory() . '/inc/custom-header.php';
    
    /**
     * Additional helper post classes
     */
    function expound_post_class( $classes ) {
    	if ( has_post_thumbnail() )
    		$classes[] = 'has-post-thumbnail';
    	return $classes;
    }
    add_filter('post_class', 'expound_post_class' );
    
    /**
     * Ignore and exclude featured posts on the home page.
     */
    function expound_pre_get_posts( $query ) {
    	if ( ! $query->is_main_query() || is_admin() )
    		return;
    
    	if ( $query->is_home() ) { // condition should be (almost) the same as in index.php
    		$query->set( 'ignore_sticky_posts', true );
    
    		$exclude_ids = array();
    		$featured_posts = expound_get_featured_posts();
    
    		if ( $featured_posts->have_posts() )
    			foreach ( $featured_posts->posts as $post )
    				$exclude_ids[] = $post->ID;
    
    		$query->set( 'post__not_in', $exclude_ids );
    	}
    }
    
    function category_nine_sort_and_all( $query ) {
    
        if ( $query->is_home() && $query->is_main_query() && is_category( 9 ) ) {
            $query->set( 'orderby', 'title' );
            $query->set( 'order', 'ASC' );
            $query->set( 'posts_per_page', -1 );
        }
    }
    add_action( 'pre_get_posts', 'category_nine_sort_and_all' );
    
    add_action( 'pre_get_posts', 'expound_pre_get_posts' );
    
    if ( ! function_exists( 'expound_get_featured_posts' ) ) :
    /**
     * Returns a new WP_Query with featured posts.
     */
    function expound_get_featured_posts() {
    	global $wp_query;
    
    	// Default number of featured posts
    	$count = apply_filters( 'expound_featured_posts_count', 5 );
    
    	// Jetpack Featured Content support
    	$sticky = apply_filters( 'expound_get_featured_posts', array() );
    	if ( ! empty( $sticky ) ) {
    		$sticky = wp_list_pluck( $sticky, 'ID' );
    
    		// Let Jetpack override the sticky posts count because it has an option for that.
    		$count = count( $sticky );
    	}
    
    	if ( empty( $sticky ) )
    		$sticky = (array) get_option( 'sticky_posts', array() );
    
    	if ( empty( $sticky ) ) {
    		return new WP_Query( array(
    			'posts_per_page' => $count,
    			'ignore_sticky_posts' => true,
    		) );
    	}
    
    	$args = array(
    		'posts_per_page' => $count,
    		'post__in' => $sticky,
    		'ignore_sticky_posts' => true,
    	);
    
    	return new WP_Query( $args );
    }
    endif;
    
    if ( ! function_exists( 'expound_get_related_posts' ) ) :
    /**
     * Returns a new WP_Query with related posts.
     */
    function expound_get_related_posts() {
    	$post = get_post();
    
    	// Support for the Yet Another Related Posts Plugin
    	if ( function_exists( 'yarpp_get_related' ) ) {
    		$related = yarpp_get_related( array( 'limit' => 3 ), $post->ID );
    		return new WP_Query( array(
    			'post__in' => wp_list_pluck( $related, 'ID' ),
    			'posts_per_page' => 3,
    			'ignore_sticky_posts' => true,
    			'post__not_in' => array( $post->ID ),
    		) );
    	}
    
    	$args = array(
    		'posts_per_page' => 3,
    		'ignore_sticky_posts' => true,
    		'post__not_in' => array( $post->ID ),
    	);
    
    	// Get posts from the same category.
    	$categories = get_the_category();
    	if ( ! empty( $categories ) ) {
    		$category = array_shift( $categories );
    		$args['tax_query'] = array(
    			array(
    				'taxonomy' => 'category',
    				'field' => 'id',
    				'terms' => $category->term_id,
    			),
    		);
    	}
    
    	return new WP_Query( $args );
    }
    endif;
    
    /**
     * Footer credits.
     */
    function expound_display_credits() {
    	$text = '<a href="http://wordpress.org/" rel="generator">' . sprintf( __( 'Proudly powered by %s', 'expound' ), 'WordPress' ) . '</a>';
    	$text .= '<span class="sep"> | </span>';
    	$text .= sprintf( __( 'Theme: %1$s by %2$s', 'expound' ), 'Expound', '<a href="http://kovshenin.com/" rel="designer">Konstantin Kovshenin</a>' );
    	echo apply_filters( 'expound_credits_text', $text );
    }
    add_action( 'expound_credits', 'expound_display_credits' );
    
    /**
     * Decrease caption width for non-full-width images. Pixelus perfectus!
     */
    function expound_shortcode_atts_caption( $attr ) {
    	global $content_width;
    
    	if ( isset( $attr['width'] ) && $attr['width'] < $content_width )
    		$attr['width'] -= 4;
    
    	return $attr;
    }
    add_filter( 'shortcode_atts_caption', 'expound_shortcode_atts_caption' );

    I think it might get the pagination info from some other source as I have tried also with 'posts_per_page', 100 but still there were only 20/page.

    Cheers,

    Adam

    Hi Badam,

    The whole thing is to master the WP_loop, and the parameters,

    Check here:
    https://codex.wordpress.org/The_Loop

    Once done, you can display pretty much everything you have in db, even from js.

    Thread Starter badamreg

    (@badamreg)

    Hi,

    In the end another suggestion is working. I have added the following for the functions.php:

    function number_of_posts_on_archive($query){
    if ($query->is_archive) {
    $query->set('posts_per_page', 100);
    }
    return $query;
    }
    
    add_filter('pre_get_posts', 'number_of_posts_on_archive');

    It is not all posts but it will take a while to reach 100. I will read through the other suggestions just for my education.

    Thank you all again.

    Adam

Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘How to show all posts in a category?’ is closed to new replies.