Question: I created a view block, whose machine name is "news." 

How do I display it using `module_invoke()` and the machine name of the view?

Answer: 
tostinni's answer is the correct one in most cases. However, if you want to include the View title, it is a bit more ugly.

From the `views_embed_view()` documentation:

> 
> Note that this function does NOT display the title of the view. If you want to do that, you will need to do what this function does manually, by loading the view, getting the preview and then getting `$view->get_title()`.
> 
> 
> 

For example:

```
$name = 'view_machine_name';
$display_id = 'block_1';
$view = views_get_view($name);
if (!$view || !$view->access($display_id)) {
  return;
}
$view_content = $view->preview($display_id);
$title = $view->get_title();

```

*Updated*: @rojosnow noted that the docs point out you must get the preview *before* calling `get_title()` so I've flipped those two lines around.
Note, for me the default block (with no name) is called `block` rather than `block_1`:

```
<?php echo views_embed_view('news_archive', 'block'); ?>

```