我正在制作我的第一个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文件替换为我的插件文件夹中的文件?我也想知道如何为这个页面制作一个自定义链接,因为它只需要一个隐藏的页面,只有那些有链接的人。
必须全部通过插件运行,并在插件停用时删除。
我还想听听有关我的代码的最佳做法和改进的任何提示。谢谢!
答案 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;
}
}
}
因此,当您转到页面'页面'时,应该重定向您的主题,您可以根据需要更改您的条件。 我认为这就是你所要求的。
对于自定义链接,可以在自定义主题文件中设置这些链接。