WordPress.org

Ready to get started?Download WordPress

Forums

Categories with Description and the lastest Posts: How To (6 posts)

  1. jennifinch
    Member
    Posted 4 years ago #

    Hello,

    May I trouble someone to share how to approach this issue.
    I would like to display Categories on my blog as follows:

    1. Category Name
    2. Category descrition limited to 50 characters
    3. 3 posts for each categorie with these attributes:

    • descending last 3 posts
    • limited to 30 characters
    • indented by 1em
    • a little graphic arrow called: catArrow.jpg proceeding each post

    Thank you in advance.

  2. MichaelH
    Member
    Posted 4 years ago #

    Leave this example for you. Last two items '1em' and 'arrow' are yours to play with ;)

    <?php
    $cat_args=array(
      'orderby' => 'name',
      'order' => 'ASC'
       );
    $categories=get_categories($cat_args);
      foreach($categories as $category) {
        $args=array(
          'showposts' => 3,
          'category__in' => array($category->term_id),
          'caller_get_posts'=>1
        );
        $posts=get_posts($args);
          if ($posts) {
            echo '<p>Category description 50 chars: ' . substr($category->description,0,50) .'</p> ';
            foreach($posts as $post) {
              setup_postdata($post);
              echo '<p>Post title 30 chars is: ' . substr($post->post_title,0,30) . '</p> ';
            } // foreach($posts
          } // if ($posts
        } // foreach($categories
    ?>
  3. jennifinch
    Member
    Posted 4 years ago #

    Thank you for your answer.---But, I think there was a misunderstanding. The lines I wrote in my question that I used the

  4. feature are ATTRIBUTES of the "Post Items". (sorry)

    Here is what I am after if possible
    example:
    I have a category: "Fruits I like"
    Category Description: I like fruit because it is tasty and colorful, sweet and smelly.
    and three recent posts are: Apples, Grapes, Oranges

    I would like the category and posts to display as such:

    Fruits I like
    I like fruit because it is tasty and colorful, sweet and...
    ->Apples
    ->Grapes
    ->Oranges

    Thank you, I must go eat now that I made myself hungry. Too bad I really hate fruit LOL

  • MichaelH
    Member
    Posted 4 years ago #

    Just a little rearrange of the output is all that's necessary

    use this for your category name and description:

    echo '<p>' . $cat->name .'</p>';
    echo '<p>' . substr($category->description,0,50) . '</p>';

    and use this for your post title, assuming Apple is your post title:

    echo '<p> -> ' . substr($post->post_title,0,30) . '</p> ';

  • SylviaC
    Member
    Posted 4 years ago #

    I am looking to do the same type of thing. I want sub-categories to show in the sidebar under my main category like so:

    Fruit I Like
    - Apples
    - Grapes
    - Oranges

    Fruit I Don't Like
    - Pears
    - Peaches

    Do I do it as per your instructions above? If so where do I make the changes?

  • jennifinch
    Member
    Posted 4 years ago #

    HI Sylvia,

    This is what worked for me. It is basically what MichaelH provided me with in this thread (Thanks Again!)
    I put this code into my sidebar, then defined the classes catTitle and catDesc in the style sheet (style.css in most themes).
    I used it in my friends blog here:
    http://www.westcoastcoaching.com
    She uses her categories more like headings with her last three posts showing. You can change that number in this line
    'showposts' => 3,
    This code also will reveal the description of the category as it is written in the admin (dashboard) under categories. In the example site above there is nothing written in the category description, but is there if you need it.
    ----------------------------------- JPF

    <?php
    $cat_args=array(
    'orderby' => 'name',
    'order' => 'ASC'
    );

    $categories=get_categories($cat_args);

    foreach($categories as $category) {
    $args=array(
    'showposts' => 3,
    'category__in' => array($category->term_id),
    'caller_get_posts'=>1
    );
    $posts=get_posts($args);
    if ($posts) {
    echo '<p>term_id.'" class="catTitle">'. substr($category->name,0,30) .'</p> ';
    echo '<div class="catDesc">'. substr($category->description,0,100) .'</div> ';

    foreach($posts as $post) {
    setup_postdata($post);
    echo '<p>ID.'" class="catPosts">' . substr($post->post_title,0,45) . '</p> ';
    } // foreach($posts
    } // if ($posts
    } // foreach($categories

    ?>

  • Topic Closed

    This topic has been closed to new replies.

    About this Topic

    Tags