• Resolved Mestika

    (@mestika)


    Hi,

    I’m trying to create a page with related post following this guide https://codex.www.ads-software.com/Pages#A_Page_of_Posts but I just can’t get it to work.

    I’ve rearranged the code a bit and instead of having the snippet in a page called pageofposts.php I just copied it right into my page.php file under some conditions.
    I’ve modified the code a bit but that was just in order to leave out the pagination, but nonetheless, here is the code:

    <?php
    if (is_page() ) {
    $category = get_post_meta($posts[0]->ID, 'category', true);
    }
    
    if ($category) {
    	echo "Output - ";
    	$cat = get_cat_ID($category);
    //	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    //	$post_per_page = 4; // -1 shows all posts
    	$do_not_show_stickies = 1; // 0 to show stickies
    	$args=array(
    		'category__in' => array($cat),
    		'orderby' => 'date',
    		'order' => 'DESC',
    //		'paged' => $paged,
    //		'posts_per_page' => $post_per_page,
    		'caller_get_posts' => $do_not_show_stickies
    	);
    	$temp = $wp_query;  // assign orginal query to temp variable for later use
    	$wp_query = null;
    	$wp_query = new WP_Query($args);
    	if( have_posts() ) :
    		while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    			<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
    				<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    				<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
    				<div class="entry"><?php the_content('Read the rest of this entry ?'); ?></div>
    				<p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments ?', '1 Comment ?', '% Comments ?'); ?></p>
    			</div>
    	<?php endwhile; ?>
    
    	<?php else : ?>
    
    		<h2 class="center">Not Found</h2>
    		<p class="center">Sorry, but you are looking for something that isn't here.</p>
    	<?php endif; 
    
    	$wp_query = $temp;  //reset back to original query
    
    }
    ?>

    Now, I’ve created a page called “new-page” and given it a Custom Field with the Key of “category” and the value of “new-page”.
    Then I created a new post where I added the tag “new-page” to it. And now, according to the article all posts which are related to the pages custom field value should be view, but nothing happens. It just say “Not Found”.

    Can anyone tell me what I’m doing wrong or what I have to do to make it work? I’ve tried debugging it for over two hours and haven’t got a clue to what is wrong with it.

    Sincere
    – Mestika

Viewing 6 replies - 1 through 6 (of 6 total)
  • isimpledesign

    (@isimpledesign)

    I dont have an issue with this code.

    create a custom page like below

    <?php
    /* Template Name: Category Page */
    get_header(); ?>
    
    <?php
    
    if (is_page() ) {
    $category = get_post_meta($posts[0]->ID, 'category', true);
    }
    if ($category) {
      $cat = get_cat_ID($category);
      $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
      $post_per_page = 4; // -1 shows all posts
      $do_not_show_stickies = 1; // 0 to show stickies
      $args=array(
        'category__in' => array($cat),
        'orderby' => 'date',
        'order' => 'DESC',
        'paged' => $paged,
        'posts_per_page' => $post_per_page,
        'caller_get_posts' => $do_not_show_stickies
      );
      $temp = $wp_query;  // assign orginal query to temp variable for later use
      $wp_query = null;
      $wp_query = new WP_Query($args);
      if( have_posts() ) :
    		while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    	    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
            <h2><a>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
            <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
            <div class="entry">
              <?php the_content('Read the rest of this entry ?'); ?>
            </div>
            <p class="postmetadata"><?php the_tags('Tags: ', ', ', ''); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments ?', '1 Comment ?', '% Comments ?'); ?></p>
          </div>
        <?php endwhile; ?>
        <div class="navigation">
          <div class="alignleft"><?php next_posts_link('? Older Entries') ?></div>
          <div class="alignright"><?php previous_posts_link('Newer Entries ?') ?></div>
        </div>
      <?php else : ?>
    
    		<h2 class="center">Not Found</h2>
    		<p class="center">Sorry, but you are looking for something that isn't here.</p>
    		<?php get_search_form(); ?>
    
    	<?php endif; 
    
    	$wp_query = $temp;  //reset back to original query
    
    }  // if ($category)
    ?>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Then in the backend off wordpress add new page make sure its using the custom template off Categroy Page.

    Make sure you have a catgeory called news or something.

    Then add a custom field with a name of category

    and a value off news or whatever you have called your category.

    Michael

    (@alchymyth)

    Then I created a new post where I added the tag “new-page” to it.

    tag or category?

    Thread Starter Mestika

    (@mestika)

    Hi isimpledesign, I’ll try your solution later.

    And alchymyth, I add a tag to my new post. They are already categorised.

    Michael

    (@alchymyth)

    your code is looking for the specific category ‘new-page’ not a tag ‘new-page’

    'category__in' => array($cat),

    if you want posts with a tag, you have to rewrite the code

    Thread Starter Mestika

    (@mestika)

    Hmm, it does make sense thats the problem – you do not happen to know how the code should be for tags instead of categories?

    Otherwise I suppose I can make it work with the categories instead of tags.

    Michael

    (@alchymyth)

    here is a go: https://wordpress.pastebin.com/cKJtJseh

    warning: untested

    make backup copies of your working theme files before editing anything

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘"A Page of Posts" tutorial: Can't get it to work, please help’ is closed to new replies.