Archive page for custom content I want to create an archive page for a custom content type.  Essentially list them all on a single page.

I understand that I need to create a module, and implement hook_block_info() and hook_block_view().  What I don't know how to do is to retrieve content so I can loop it out. In wordpress there is query_posts($post_type = mycustomcontenttype). Is there an equivalent in Drupal 7?

I do not want to use the Views module for this.
If you're looking to retrieve $node objects and aren't afraid of formatting the info yourself, node_load_multiple() probably comes closest to solving your problem. The $conditions parameter is supposed to be deprecated, but you could use it to specify content type. If you want to use node_load_multiple() in the manner recommended by the API page, I believe you would just use a simple db_query() to retrieve the node ids (nids) of all content with a given type:

$nids = db_query('SELECT nid FROM {node} WHERE type = my_content_type');


Then you could iterate through the results to create an array of nids to pass to node_load_multiple().

$nid_array = array();
foreach($nids as $nid){
  $nid_array[] = $nid;
}
node_load_multiple($nid_array);


From there you're going to have to iterate through the $node objects returned to create your archive page. Depending on whether you're using path aliases, you might have to retrieve the alias for each node.

drupal_lookup_path('alias',"node/".$node-&gt;nid);


All that said, I would do this in Views in a heartbeat.