2015-01-05 2 views
0

임씨는 이와 같이하려고합니다.메뉴 항목없이 사용자 정의 프론트 엔드 페이지 추가 - wordpress

Add "custom page" without page

내가 관리자 패널, Pages->Add New에서 워드 프레스 페이지를 추가하는 방법에 대해 알고, 다음 슬러그를 사용하여 PHP 파일에이 페이지를 연결합니다. 벌써 했어. 나는 관리자 패널에서 페이지를 추가하지 않고이 페이지를 작동시키고 싶습니다. 관리 패널에서 페이지가 삭제되면 디렉토리에 존재하더라도 작동하지 않습니다.

제 질문에 대한 답변이 충분하지 않은 경우 알려주십시오. 어떤 도움을 주셔서 감사합니다.

감사합니다.

업데이트 :

덕분에 내가 자신의 코드를 수정하여 문제를 해결할 수 있었다 @ 마이크입니다. 방금 add_rewrite_rule()과 그 좋은 일을 추가해야했습니다. permalinks를 플러시하는 것을 잊지 마십시오.

function add_application_endpoint() { 
add_rewrite_endpoint('view', EP_PERMALINK); 
} 

add_action('init', 'add_application_endpoint'); 

function add_endpoint_queryvar($query_vars) { 
    $query_vars[] = 'view'; 
    $query_vars[] = 'ptag'; 
    $query_vars[] = 'product_cat'; 

    return $query_vars; 
} 

add_filter('query_vars', 'add_endpoint_queryvar'); 
add_rewrite_rule('^view/([^/]+)/([^/]+)/?$', 'index.php?pagename=custom-product-tags&ptag=$matches[1]&product_cat=$matches[2]', 'top'); 

/** 
* Setting up job app template redirect for custom end point rewrite 
*/ 

function job_application_template_redirect() { 
    global $wp_query; 
    if ($wp_query->query_vars['name'] != 'custom-product-tags') { 
     return; 
    } 

    include dirname(__FILE__) . '/page-custom-product-tags.php'; 

    exit; 
} 

add_action('template_redirect', 'job_application_template_redirect'); 

답변

1

당신은 사용자 정의 엔드 포인트를 작성하고 템플릿이 functions.php 파일에 재 설정하여 그것을 할 수 있습니다 .. 여기에 구직 신청 페이지에 대한 예입니다. 이 코드가 내 functions.php 파일에 추가되면 내 사이트에서 '/ apply'를 방문하면 page-job_application.php 템플릿이 렌더링됩니다.

희망 사항은 귀하가 필요로 하시길 바랍니다.

/** 
* Rewrite custom endpoint for job post applications 
*/ 
function add_application_endpoint() { 
    add_rewrite_endpoint('apply', EP_PERMALINK); 
} 
add_action('init', 'add_application_endpoint'); 

/** 
* Register our custom endpoint as a query var 
*/ 
function add_endpoint_queryvar($query_vars) { 
     $query_vars[] = 'apply'; 
    return $query_vars; 
} 
add_filter('query_vars', 'add_endpoint_queryvar'); 

/** 
* Setting up job app template redirect for custom end point rewrite 
*/ 
function job_application_template_redirect() { 
    global $wp_query; 
if (! isset($wp_query->query_vars['apply']) || ! is_singular()) 
    return; 
include dirname(__FILE__) . '/page-job_application.php'; 
exit; 
} 
add_action('template_redirect', 'job_application_template_redirect'); 
+0

코드를 사용해 주셔서 감사합니다. 수정을 마친 후 코드 작업을 관리하고 URL에 액세스하고 query-string에 매개 변수를 전달하기 위해 add_rewrite_rule()을 추가해야했습니다. 페이지가 정상적으로 작동하지만 브라우저 탭에서 '페이지를 찾을 수 없음'을 표시하더라도 문제는 하나뿐입니다. 왜 그런가? – Kevin

+0

이해 하겠다면 브라우저 탭에 표시되는 제목을 참조하고 있지만 페이지가 올바르게 렌더링되고 있습니까? 이 제목은 헤더에서 가져 오므로 페이지 자체에 제목이 동적으로 설정되어 있어야합니다. wp_title의 필터가 가장 잘 작동한다고 생각합니다. function add_title_to_custom_page() { add_filter ('wp_title', 'filter_function_name', 10, 2) –

+0

죄송합니다. 실수로 입력하십시오. 여기 내 의견은 다음과 같습니다 내가 가장 잘 할 당신의'functions.php' 파일에 wp_title''에 필터를 생각 : { 를 기능 add_title_to_custom_page ($ 제목) 경우 (is_page_template ('페이지 job_application.php')) { \t $ title = "내 사용자 정의 페이지 제목"; } else { \t $ title = $ title; } return $ title } add_filter ('wp_title', 'add_title_to_custom_page'); 희망이 있습니다. –