Link to home
Start Free TrialLog in
Avatar of Chris Andrews
Chris AndrewsFlag for United States of America

asked on

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

Avatar of Jason C. Levine
Jason C. Levine
Flag of United States of America image

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

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.
Avatar of Chris Andrews

ASKER

hmm, not getting anything, do I need to be 'in the loop' for that, will have to figure that out...
>> I believe it would only output the page/post that you open to display the post titles.

Gah.  Oops...
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 :)
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

jeremyjared74 - yep, just need the urls :)
ASKER CERTIFIED SOLUTION
Avatar of Jason C. Levine
Jason C. Levine
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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>
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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
No, not working. But I'm with you, gotta get some sleep and tackle this again tomorrow.

Thank you for trying to help.
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!
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
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. :)
Well, thank you both!!!  :)