如何使用插件将新(空白)页面添加到wordpress站点

时间:2013-10-11 02:27:40

标签: wordpress wordpress-plugin

我正在制作我的第一个wordpress插件,似乎被困在某事上。

我需要插件,在激活时,使用与网站其余部分相同的样式创建新页面;以及向链接添加可自定义的路径(/这是路径)。

我已经研究了如何执行此操作,并且已经使用此代码显示了一个空白的.php文件:

//Template fallback
add_action("template_redirect", 'my_theme_redirect');

function my_theme_redirect() {
    global $wpdb;
    $plugindir = dirname( __FILE__ );

    //A Simple Page
    if ( $wp->query_vars[ "pagename" ] == 'event-photo-uploadr' ) {
        $templatefilename = 'custom-uplaodr-page.php';
        if ( file_exists( TEMPLATEPATH . '/' . $templatefilename )) {
            $return_template = TEMPLATEPATH . '/' . $templatefilename;
        } else {
            $return_template = $plugindir . '/themefiles/' . $templatefilename;
        }
        do_theme_redirect($return_template);
    }
}

function do_theme_redirect($url) {
    global $post, $wp_query;
    if (have_posts()) {
        include($url);
        die();
    } else {
        $wp_query->is_404 = true;
    }
}

我现在需要知道的是,如何将此.php文件替换为我的插件文件夹中的文件?我也想知道如何为这个页面制作一个自定义链接,因为它只需要一个隐藏的页面,只有那些有链接的人。

必须全部通过插件运行,并在插件停用时删除。

我还想听听有关我的代码的最佳做法和改进的任何提示。谢谢!

1 个答案:

答案 0 :(得分:0)

使用add_action

add_action('template_redirect','function name');

然后创建一个加载和使用需要的函数,这将超过你当前的主题。 然后,您需要在函数中添加过滤器。

add_action('template_redirect', 'loadTheme');

function laodTheme() {
if (is_page('page')){
global $post, $wp_query;
    if (have_posts()) {
        require($url);
        die();
    } else {
        $wp_query->is_404 = true;
    }
}  
}

因此,当您转到页面'页面'时,应该重定向您的主题,您可以根据需要更改您的条件。 我认为这就是你所要求的。

对于自定义链接,可以在自定义主题文件中设置这些链接。