• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 425
  • Last Modified:

Getting urls of all wordpress posts - wp_get_archives?

I need to get a list of all my Wordpress post's urls, ie:

http://www.mysite.com/postnameone
http://www.mysite.com/postnametwo
http://www.mysite.com/postnamethree

I have found I can use this:

<?php wp_get_archives('type=postbypost&limit=2000&format=custom'); ?>

In a template to get a full list of post titles that are linked to each post, but I don't need a link, I just need a list of the plain text (unlinked) permalink urls, one per line.

Can you show me how to do that?

Thanks,  Chris

0
St_Aug_Beach_Bum
Asked:
St_Aug_Beach_Bum
  • 7
  • 5
  • 4
2 Solutions
 
Jason C. LevineNo oneCommented:
Something like:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <p><?php the_permalink() ?></p>
<?php endwhile; else: ?>
   <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

Open in new window


should do it

0
 
jeremyjared74Commented:
You might want to wrap them inside of <ul><li> tags so it's easier to make them into a list. I'm not sure you want them to display, but fi you want the actual title, use this:

<div id="all-posts">
  <?php $debut = 0; while(have_posts()) : the_post(); ?>
    <ul>
    <?php $myposts = get_posts('numberposts=-1&offset=$debut'); foreach($myposts as $post) : ?>
      <li>
        <?php the_title(); ?>
      </li>
    <?php endforeach; ?>
    </ul>
  <?php endwhile; ?>
</div>

Open in new window


If you want the URL of the posts, use Jason's code. It will need a little modification though. I believe it would only output the page/post that you open to display the post titles.
0
 
St_Aug_Beach_BumAuthor Commented:
hmm, not getting anything, do I need to be 'in the loop' for that, will have to figure that out...
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
Jason C. LevineNo oneCommented:
>> I believe it would only output the page/post that you open to display the post titles.

Gah.  Oops...
0
 
St_Aug_Beach_BumAuthor Commented:
ah, ok, it did work for that, I did get a line that had the url of that page on it, but that one was it :)
0
 
Jason C. LevineNo oneCommented:
So you need to combine Jeremy's loop with my interior to get the solution :)

No more late night EE for me...brain hurts

Open in new window

0
 
St_Aug_Beach_BumAuthor Commented:
jeremyjared74 - yep, just need the urls :)
0
 
Jason C. LevineNo oneCommented:
Placing:

<?php the_permalink() ?>

inside the loop (use li or p tags for structure) should return the list of URLs
0
 
St_Aug_Beach_BumAuthor Commented:
I'm confused,

Do you mean in jeremyjared74's loop? Replace 'the_title()' with 'the_permanlink()'?

I don't get any results, just:

-----(page source)----

<div id="all-posts">

      <ul>
------------------------

Here is the code I have on a template page right now:

<?php
/*
Template Name: url-list
*/
?>
<div id="all-posts">
  <?php $debut = 0; while(have_posts()) : the_post(); ?>
    <ul>
    <?php $myposts = get_posts('numberposts=-1&offset=$debut'); foreach($myposts as $post) : ?>
      <li>
        <?php the_permalink(); ?>
      </li>
    <?php endforeach; ?>
    </ul>
  <?php endwhile; ?>
</div>
0
 
jeremyjared74Commented:
I think you have it. By combining my custom function with Jason's you should get what you're needing. It's a little late or I'd test it. I haven;t really looked at your latest code, but here's a quick change that should work:

<div id="all-posts">
  <?php $debut = 0; while(have_posts()) : the_post(); ?>
    <ul>
    <?php $myposts = get_posts('numberposts=-1&offset=$debut'); foreach($myposts as $post) : ?>
      <li>
        <?php the_permalink() ?>
      </li>
    <?php endforeach; ?>
    </ul>
  <?php endwhile; ?>
</div>

Open in new window


I'm not after the points, Jason would have eventually worked it out, so I don't require any points. I was only making an observation.

Good Night,
JJ
0
 
jeremyjared74Commented:
I just tested my code, and it's working. I don't know why it's not for you. You don't have the code place in a template with another loop do you?

I just placed the code as is inside of a sidebar I had available. If you don't figure it out, one of us will finish up tomorrow.

Regards,
Jeremy Jared
0
 
St_Aug_Beach_BumAuthor Commented:
No, not working. But I'm with you, gotta get some sleep and tackle this again tomorrow.

Thank you for trying to help.
0
 
St_Aug_Beach_BumAuthor Commented:
ah, took a look with fresh eyes this morning ;)

I had to adjust the numberposts=-1 to a much higher number. I don't know if it works for you with -1 or if you thought I would know that :)  (I did, come morning!).

jeremyjared74 - do you really not want points, or shall I split them between the two of you?

Thank you very much!
0
 
jeremyjared74Commented:
It's up to you, I'd give most to Jason though. I didn't want to impose on his answers, I just wanted to add some input. You might select on of my answers as assisted solution so it can be seen by others that might search and find this question.

I had to adjust the numberposts=-1 to a much higher number. I don't know if it works for you with -1 or if you thought I would know that
Yeah I assumed you were copy and pasting the code. Sometimes when I'm in a rush I forget to explain important parts of the code. I'm glad you caught it and were able to solve you problem.

Regards,
JJ
0
 
Jason C. LevineNo oneCommented:
The right thing to do is give jj the solution and me an assist with more poinks to Jeremy.  His loop is correct, I just used the right function to return a URL.  

Good teamwork, though. :)
0
 
St_Aug_Beach_BumAuthor Commented:
Well, thank you both!!!  :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 7
  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now