Add a New [content type] on each content type I want to create a block and put it in the sidebar of each content type that says "Add a new [content type]" So if the user was viewing an article, it would have "Add a new article", if the user was viewing a car, it would say "add a new car" etc.

Obviously I could make a different block and then control their display via context, but I'd rather create one block that essentially always links to add/new/[content-type] where content-type is whatever is being viewed.

Is there a way to pass in this argument via context?
In the hook that return the block content, call a function with a code similar to the following one.

function mymodule_node_add_link() {
  $node = menu_get_object();

  if (!empty($node-&gt;type)) {
    $types = node_type_get_types();
    return l(t('Add a new @name', array('@name' =&gt; $types[$node-&gt;type]-&gt;name)), 'node/add/' str_replace('_', '-', $node-&gt;type));
  }

  return '';
}


The hook calling this function should always check the value returned from the function. In the case the showed page is not a node page, menu_get_object() doesn't return a node object, and this function returns an empty string. 

Notice that every string shown in the user interface should be passed to t(). When passing a string to t(), you should avoid concatenating string, but you should use the placeholders the function supports, as in the code I shown.