Comment déterminer quelle page est actuellement en cours de modification à l’aide de la fonctionnalité intégrée de WordPress ?
J’ai écrit un module dans mon thème WordPress, c’est trop compliqué et hors de propos.
I need to include a block of code and want a reliable way to determine if the user is currently editing specific pages.
Essentially, I want the equivalent of the front-end check:
if (is_front_page()) {
But, for when on the editor pages.
It is required to be able to target pages that are not given special names like front-page / shop-page too. So I may need to target by post ID.
What is the cleanest way to perform this check?
I have tried the function above, along with:
$screen = get_current_screen();
However, this forces a critical error:
Fatal error: Uncaught Error: Call to undefined function get_current_screen() in ... points to line.
A couple other methods have also been attempted, I just note a few. I thought I would be able to get one to work but none seem to do the trick. Please can someone point me in the right direction?
EDIT
Adding example snippet
// This creates the fatal error.
// $screen = get_current_screen();
// var_dump($screen);
// This is for the front-end
// if (is_front_page()) {
// global $pagenow;
// var_dump($pagenow);
// if ($pagenow == 'post.php') {
// This returns string(8) "post.php" which is not descript enough.
// This is front-end
// global $post;
// $post_id = $post->ID;
// Post ID 3887 is Home
if ($post_id == '3887') {
echo 'hello!';
require_once('inc/overlays/page-template/fc-front-page.php');
} else {
echo 'Well that did not work!';
}
La raison pour laquelle je fais cela n’est pas pertinente, je veux simplement inclure un fichier dans un dossier différent, le fichier appelé sera différent selon la page en cours d’édition !
Solution n°1 trouvée
get_current_screen()
n’est valable que sur les pages d’administration.
L’ WP_Screen
objet est défini après le admin_init
crochet d’action via le current_screen
crochet d’action. Vous pouvez vous référer au Plugin API/Action Reference et aux actions exécutées lors d’une demande typique pour la séquence de crochet de déclenchement.
Pour vous assurer que l’ WP_Screen
objet tire, vous pouvez utiliser la fonction suivante. Il affichera l’objet écran sous forme de commentaire html sur les pages d’administration qui le prennent en charge.
add_action( 'current_screen', 'print_r_get_current_screen' );
if ( ! function_exists( 'print_r_get_current_screen' ) ) {
function print_r_get_current_screen() {
echo PHP_EOL . '<!--' . PHP_EOL;
print_r( get_current_screen() );
echo PHP_EOL . '-->' . PHP_EOL;
};
};
Mais je ne pense pas que l’utilisation de l’écran actuel vous aidera à réaliser ce que vous essayez de faire.
Vous pouvez utiliser get_option( 'page_on_front' );
pour obtenir l’identifiant de la page d’accueil.
add_action( 'init', 'print_r_get_option_page_on_front' );
if ( ! function_exists( 'print_r_get_option_page_on_front' ) ) {
function print_r_get_option_page_on_front() {
echo PHP_EOL . '<!--' . PHP_EOL;
print_r( get_option( 'page_on_front' ) ); //... 0 if undefined, page ID if defined
echo PHP_EOL . '-->' . PHP_EOL;
};
};
Pour woocommerce, je suis sûr que vous pouvez utiliser woocommerce_get_page_id( 'shop' )
.
0 commentaire