2014-10-03 3 views
3

Я ищу решение по добавлению настраиваемого шаблона для плагина на короткий код. Но я не могу сделать это успешно.Пользовательский шаблон для плагина wordpress

Я создал папку с шаблонами в моей папке плагинов и разместил в ней настраиваемый шаблон. Я хочу показать этот шаблон, поставив короткий код. Для этого я написал следующий фрагмент кода.

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'); 

но это не работает. Я включил этот файл в свой основной файл плагина. Кажется, я оставляю крючки.

+0

Вы пытаетесь вызвать свой короткий код через '[parse_login_page]', правильно? На первый взгляд все выглядит хорошо. – mudasobwa

+0

Да, я хочу, чтобы мой короткий код появился в этом шаблоне (login.php). но я не получаю template.Basically add_action ('template_redirect', 'my_template'); не работает – Sajid

+0

Попробуйте переместить определение 'my_template' в глобальную область. – mudasobwa

ответ

2

Здесь адаптированный пример из WordPress Codex

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

Thanx @wait xd. все еще не работает точно, что я хочу. – Sajid

0

Вы первый набор шаблон страницы в БД, как:

$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'); 

Надеюсь, вы найдете решение.

Смежные вопросы