我正在使用此代码向wordpress页面添加一些内容。但是这段代码不起作用。 is_page()始终返回false值。
<?php
/**
* Plugin Name: Name Of The Plugin
* Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
* Description: A brief description of the Plugin.
* Version: The Plugin's Version Number, e.g.: 1.0
* Author: Name Of The Plugin Author
* Author URI: http://URI_Of_The_Plugin_Author
* License: A "Slug" license name e.g. GPL2
*/
add_action("init", "only_pages");
function only_pages(){
if(!is_admin()){
if(is_page()){
// Do something here...
}
}
}
请帮帮我。
答案 0 :(得分:20)
好的..这是解决方案。而不是使用动作钩子init,使用wp动作钩子。
/*
* Plugin Name: Page Test
*/
add_action("wp", "only_pages");
function only_pages(){
if(!is_admin()){
wp_reset_query();
if(is_page()){
echo 'I am single page';
}
else{
echo 'I am not single page';
}
}
}
这很好用。希望这会有所帮助。
答案 1 :(得分:0)
嗯,我想如果它不起作用,你可以抓住$wpdb
对象并检查post_type
function only_pages(){
global $wpdb;
if(!is_admin() & $wpdb->post_type == 'page'):
//Do something here
endif;
}
答案 2 :(得分:-1)
is_page();
// When any single Page is being displayed.
is_page( 42 );
// When Page 42 (ID) is being displayed.
is_page( 'Contact' );
// When the Page with a post_title of "Contact" is being displayed.
is_page( 'about-me' );
// When the Page with a post_name (slug) of "about-me" is being displayed.
is_page( array( 42, 'about-me', 'Contact' ) );
// Returns true when the Pages displayed is either post ID 42, or post_name "about-me", or post_title "Contact". Note: the array ability was added at Version 2.5.
答案 3 :(得分:-1)
尝试另一种方法。在每个页面中都有一个名为&#34; page&#34;在身体css。所以你可以定位这个类:
$classes = get_body_class();
if (in_array('page',$classes)) {
// Do something
}