문제

2017-09-09 2 views
1
function getParentID() { 
    $url = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ]; 
    $pageID = url_to_postid($url); 
    $pageID = trim($pageID); 
    return $pageID; 
} 

function OrderFieldsQuery($args) { 

    //->> WORKS WITH HARD-CODED ID'S 
    $args['post_parent'] = 52; 

    $args['post_parent'] = getParentID(); 
    // Doesn't work in that way, even function returns same value; 

    return $args; 
} 

add_filter('acf/fields/relationship/query', 'OrderFieldsQuery', 10, 1); // add key to filter 

** 추가 예 :이 탈 **문제

global $wp; 
    $currentUrl = home_url(add_query_arg(array(),$wp->request)); 
    $ID = url_to_postid($currentUrl); 
    $args['post_parent'] = $ID; 
    $args['post_parent1'] = 52; 
    if ($args['post_parent'] === $args['post_parent1']) 
     $args['equal'] = true; 
    // Doesn't work in that way, even function returns same value; 

    return $args; 

출력 ......... :

어레이 ([post_parent] => 52 [post_parent1] => 52 [equal] => 1)

그래서 동일하지만 하드 코딩 된 경우에만 작동합니다.

+0

'var_dump (getParentID())'는 무엇을 반환합니까? – Qirel

답변

0

는 페이지 ID를 얻을 수

global $wp; 
$current_url = home_url(add_query_arg(array(),$wp->request)); 

이제 코드 아래에 사용할 코드 아래에서이

function OrderFieldsQuery($args) { 

    //->> WORKS WITH HARD-CODED ID'S 
    $args['post_parent'] = 52; 

    $url = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ]; 
    $pageID = url_to_postid($url); 
    $pageID = trim($pageID); 
    $args['post_parent'] = $pageID; 
    // Doesn't work in that way, even function returns same value; 

    return $args; 
} 

add_filter('acf/fields/relationship/query', 'OrderFieldsQuery', 10, 1); // add key to filter 
+0

올바른 배열을 반환하지만 add_filter ('acf .....')로 바뀌면 제대로 작동하지 않습니다. 달성하려는 작업은 페이지의 acf 검색 필드에 대해 -> 필터 만들기를하므로 동일한 ID (페이지 ID 편집)가있는 페이지 만 볼 수 있습니다. 지금은 IM의 페이지 아이의 아이들입니다. functions.php -> 현재 페이지 ID를 얻고 add_filter로 전달하려고합니다. 다시. 하드 코드 된 = 52 -> 제대로 작동합니다. 코드 예제가 NO 인 경우에도 프론트 엔드의 값이 하드 코드 된 것처럼 인쇄됩니다. 아마도 유형과 관련이 있습니다. Like URL == string ???? – revengeance

0

가져 오기 페이지 URL을 시도

$postid = url_to_postid($current_url); 

이제 ID를 얻을 것이다