Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Knowing that wordpress doesn't follow MVC pattern. What is the best way in worpress to output plugin's result in a certain url. lets say I would like to show "hello world" in main area under "www.example.com/show-hello-world" url. thanks. hope question is clear!

more details:

Let's say url "example.com/show-hello-world"

  1. how could I specify template name, let's say "page" ?
share|improve this question
    
create a page named "show hello world" ? –  edelwater Mar 20 '11 at 23:20
1  
Try rephrasing your question or give a better example of what you want to achieve –  Bainternet Mar 21 '11 at 1:34

2 Answers 2

There are two steps:

function my_plugin_rewrite_rule() {
  global $wp;

  $wp->add_query_var( 'show_hello_world' );
  add_rewrite_rule( 'show-hello-world/?$', 'index.php?show_hello_world=1', 'top' );
}
add_action( 'init', 'my_plugin_rewrite_rule' );

That takes care of rewriting. Remember to flush the rewrite rules.

Now, your plugin can check for get_query_var( 'show_hello_world' ); and load a certain file:

function my_plugin_template( $path ) {
 if ( get_query_var( 'show_hello_world' ) )
    return locate_template( 'my-plugin.php' );
  else
    return $path;
}
add_filter( 'template_include', 'my_plugin_template' );
share|improve this answer

In your header.php, page.php, or index.php, add:

<?php
if (is_page('show-hello-world')) { 
   echo "Hello, world!";
}
?>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.