Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php wordpress插件的自定义模板_Php_Wordpress - Fatal编程技术网

Php wordpress插件的自定义模板

Php wordpress插件的自定义模板,php,wordpress,Php,Wordpress,我正在搜索一个解决方案,添加一个自定义模板的插件上的短代码。但我无法成功地做到这一点 我在我的插件文件夹中创建了一个模板文件夹,并在其中放置了一个自定义模板。我想通过放置一个简短的代码来显示这个模板。为此,我编写了以下代码 function wp_parse_login() { add_action('template_redirect', 'my_template'); function my_template() { include ('templat

我正在搜索一个解决方案,添加一个自定义模板的插件上的短代码。但我无法成功地做到这一点

我在我的插件文件夹中创建了一个模板文件夹,并在其中放置了一个自定义模板。我想通过放置一个简短的代码来显示这个模板。为此,我编写了以下代码

function wp_parse_login()
{
    add_action('template_redirect', 'my_template');
    function my_template()
    {
        include ('template/login.php');
        exit;
    }
}
add_shortcode('parse_login_page','wp_parse_login');

但它不起作用。我已经将这个文件包含到我的主插件文件中。我想我留下了一些钩子。

这里是一个改编自


首先在DB中设置页面模板,如下所示:

$table_post_meta = $wpdb->prefix.'postmeta';

$meta_data = array(
    'post_id'       =>  $post_id, (Get dynamically post id of a page)
    'meta_key'      =>  '_wp_page_template',
    'meta_value'    =>  'template/login.php' (Give the file path)
);
$wpdb->insert($table_post_meta,$meta_data) or die(mysql_error());
您在模板页面中编写的此代码:

function wp_parse_login() {
    ob_start();
    include ('template/login.php');
    return ob_get_clean();
}
add_shortcode('parse_login_page','wp_parse_login');

希望您能找到解决方案。

您确实尝试通过
[parse\u login\u page]
调用您的快捷码,对吗?乍一看一切都很好。是的,我想用我的短代码来显示这个模板(login.php)。但是我没有得到模板。基本上是添加动作(“模板重定向”,“我的模板”);不起作用尝试将
我的\u模板的定义移动到全局范围。是的,我刚刚做了。但是仍然有相同的问题。添加操作('template\u redirect','my\u template');在函数外面工作,而不是在我的短代码函数里面
function wp_parse_login() {
    ob_start();
    include ('template/login.php');
    return ob_get_clean();
}
add_shortcode('parse_login_page','wp_parse_login');