2017-06-16 1 views
1

Ich möchte den Post-Typ von Seiten oder Posts überprüfen und je nach Post-Typ einige Funktionen anzeigen. Also verwende ich eine Funktion in functions.php, die den Post-Typ zurückgibt, wenn sie in Admin-Seiten, aber nicht auf Themenseiten verwendet wird.Wie bekomme ich den aktuellen Beitragstyp in functions.php, um global zu verwenden?

Ich brauche diese Funktion, um eine PHP-Datei einzuschließen, wenn der Beitragstyp page ist. Also muss es systemweit funktionieren (wenn es möglich ist). In Vorlagen können Sie Seiten verwalten, bearbeiten und veröffentlichen. Hier

ist die Funktion, die ich verwende:

function vart_current_post_type() { 
    global $post, $typenow, $current_screen; 

    if ($post && $post->post_type) { 
     return $post->post_type; 
    } 

    elseif (isset($_GET[ 'post' ])) { 
     return get_post_type($_GET[ 'post' ]); 
    } 

    elseif ($typenow) { 
     return $typenow; 
    } 

    elseif ($current_screen && $current_screen->post_type) { 
     return $current_screen->post_type; 
    } 

    elseif (isset($_REQUEST[ 'post_type' ])) { 
     return sanitize_key($_REQUEST[ 'post_type' ]); 
    } 

    return null; 
} 

add_action('init', 'vart_current_post_type'); 

Bitte sagen Sie mir, was soll ich tun, um es zu Thema Vorlagen und Seiten funktioniert?

Danke.

Antwort

1

Es gibt eine native Methode aktuellen Post-Typen, um herauszufinden: https://developer.wordpress.org/reference/functions/get_post_type/

$post_type = get_post_type(); 
+0

Wenn Sie diese Methode in page.php verwenden oder index.php es funktioniert gut, aber ich brauche den Post-Typen in functions.php zu bekommen Das gibt null zurück. –

+0

Möchten Sie es in "init" Hook verwenden? Ist es obligatorisch? –

+0

Ja, ich brauche die Post-Typ-Informationen, wann immer ich sie brauche. Ich weiß nicht, ob es möglich ist, aber :) –

Verwandte Themen