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 

** Weiteres Beispiel: **Probleme mit functions.php

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; 

Output i auf diese bekommen .........:

Array ([post_parent] => 52 [post_parent1] => 52 [gleich] => 1)

So sind sie gleich, aber es funktioniert nur, wenn sie fest codiert sind.

+0

Was gibt 'var_dump (getParentID())' zurück? – Qirel

Antwort

0

versuchen, diese

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

Es gibt das korrekte Array zurück, aber wenn es zu add_filter ('acf .....') geht, funktioniert es dort nicht korrekt. Die Aufgabe im Versuch zu erreichen ist -> Filter für ACF Suchfeld für Seiten machen, so sehe ich nur Seiten mit der gleichen ID (Seite ID bearbeiten). Welche Kinder von der Seite IM ON gerade mögen. functions.php -> versuchen, aktuelle Seite ID zu erhalten und dann an add_filter übergeben. Also nochmal. Mit hardcoded = 52 -> Funktioniert korrekt. Mit Ihrem Codebeispiel NEIN, auch wenn ich Wert am Front-End gedruckt habe, ist es genauso, wie es hart codiert wäre. Vielleicht hat es etwas mit Typen zu tun. Wie URL == string ???? – revengeance

0

Get Seiten-URL von unten Code

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

Jetzt Code unten verwenden, um die Seiten-ID

$postid = url_to_postid($current_url); 

Jetzt bekommen Sie die ID erhalten

Verwandte Themen