Php is_page()不工作

Php is_page()不工作,php,wordpress,Php,Wordpress,好吧,我一直在想这个问题。我并不完全是一名PHP开发人员,但通常可以通过查看示例和Wordpress文档来了解情况。然而我在挣扎 我正在尝试向Wordpress模板文件添加一段“简单”的代码,但它不起作用。基本上我想在某些页面上显示内容,在其他页面上显示不同的内容。这就是我到目前为止所做的: <?php if(is_page('123')): ?> This text <?php endif; ?> <?php if(!is_page('123')): ?&

好吧,我一直在想这个问题。我并不完全是一名PHP开发人员,但通常可以通过查看示例和Wordpress文档来了解情况。然而我在挣扎

我正在尝试向Wordpress模板文件添加一段“简单”的代码,但它不起作用。基本上我想在某些页面上显示内容,在其他页面上显示不同的内容。这就是我到目前为止所做的:

<?php if(is_page('123')): ?>
    This text
<?php endif; ?>
<?php if(!is_page('123')): ?>
    That text
<?php endif; ?>

本文
该文本
非常感谢您的帮助。

您可以尝试以下方法:

global $post;

<?php if( $post->ID == 346) { ?>

      <!-- do your stuff here -->

<?php } ?>
<?php if(is_page(123)): ?>
    This text
<?php endif; ?>
<?php if(!is_page(123)): ?>
    That text
<?php endif; ?>
global$post;


您可以尝试以下方法:

global $post;

<?php if( $post->ID == 346) { ?>

      <!-- do your stuff here -->

<?php } ?>
<?php if(is_page(123)): ?>
    This text
<?php endif; ?>
<?php if(!is_page(123)): ?>
    That text
<?php endif; ?>
global$post;


您应该提供更多上下文。提供的代码反映了什么?虽然你认为它应该说“这段文字”,但它总是说“那段文字”吗

也许太明显了,但“123”是这篇文章的名字吗

如果要检查具有ID的帖子,请尝试以下操作:

global $post;

<?php if( $post->ID == 346) { ?>

      <!-- do your stuff here -->

<?php } ?>
<?php if(is_page(123)): ?>
    This text
<?php endif; ?>
<?php if(!is_page(123)): ?>
    That text
<?php endif; ?>

本文
该文本

使用“123”使其成为一个字符串,并搜索带有标题的帖子或带有该字符串的slug。

您应该提供更多上下文。提供的代码反映了什么?虽然你认为它应该说“这段文字”,但它总是说“那段文字”吗

也许太明显了,但“123”是这篇文章的名字吗

如果要检查具有ID的帖子,请尝试以下操作:

global $post;

<?php if( $post->ID == 346) { ?>

      <!-- do your stuff here -->

<?php } ?>
<?php if(is_page(123)): ?>
    This text
<?php endif; ?>
<?php if(!is_page(123)): ?>
    That text
<?php endif; ?>

本文
该文本

使用“123”使其成为一个字符串,并使用该字符串搜索带有标题或段塞的帖子。

您是否在WP循环中使用此选项?如果是,请注意:

由于某些全局变量在循环过程中被覆盖, is_page()将不起作用。为了在循环后调用它,必须 首先调用wp_reset_query()

(发件人:)


另外,您不应该将页面ID加引号-它是一个整数。

您是否在WP循环中使用它?如果是,请注意:

由于某些全局变量在循环过程中被覆盖, is_page()将不起作用。为了在循环后调用它,必须 首先调用wp_reset_query()

(发件人:)


另外,您不应该将页面ID加引号-它是一个整数。

您不应该在两个语句之间使用逻辑“Not”运算符。一个简单的
if/else
就足够了。也就是说:

如果没有为站点上的现有页面设置当前查询,则函数将返回false

可能的条件:

全局查询已被修改/覆盖。如果您在此代码之前使用-停止!配合使用

名为
'123'
的记录实际上不是页面<代码>is_页面专门检查
页面
帖子类型。考虑姐妹函数或

同样,您是否在寻找ID:123?如果是,请删除引号。ID应作为整数传递:
123

您正在“循环”中使用此功能,它可能会产生意外的交互。相反,您需要使用另一个限定语句,例如
if(get_the_ID()==123)){
if($post->ID==123){

此代码过早地挂接到操作挂钩上,例如
插件加载
,其中可能尚未设置全局查询和post对象

检查以确保这些条件是否适用,然后可以修改代码,使其更加简洁:

if( is_page( 123 ) ){
    echo 'This is page ID 123';
} else {
    echo 'This is NOT page ID 123';
}
或者更进一步


您不需要在两个语句之间使用逻辑“Not”运算符。一个简单的
if/else
就足够了。也就是说:

如果没有为站点上的现有页面设置当前查询,则函数将返回false

可能的条件:

全局查询已被修改/覆盖。如果在此代码之前使用-stop!请与一起使用

<> >名称>代码> 123 '/COD>实际上不是一个页面。<代码> iSpage 专门检查<代码>页面< /代码>帖子类型。考虑姐妹函数或

同样,您是否在寻找ID:123?如果是,请删除引号。ID应作为整数传递:
123

您正在“循环”中使用此语句,它可能会产生意外的交互。您需要使用另一个限定语句,例如
if(get_The_ID()==123)){
if($post->ID==123){

此代码过早地挂接到操作挂钩上,例如
插件加载
,其中可能尚未设置全局查询和post对象

检查以确保这些条件是否适用,然后可以修改代码,使其更加简洁:

if( is_page( 123 ) ){
    echo 'This is page ID 123';
} else {
    echo 'This is NOT page ID 123';
}
或者更进一步


是否应该有大于号“
对不起,不。是否应该有大于号“
对不起,不。不”