如果帖子ID与这些ID匹配,则执行以下操作

时间:2017-01-12 作者:Erwin

我仍然是php的新手,但我正试图为我的Wordpress网页显示一个不同的布局,只显示一个帖子id。

我原以为这会很简单,但我已经尝试了下面代码的一些安静的变体。包括…在内is_singular 而且没有$post 等等,我已经没有灵感了。我能做什么?我需要寻找什么?有人能帮我吗?

<?php

if (is_single ($post = \'2578\')) {
    get_template_part(\'partials/content\', \'challenge\');
} 
elseif (is_single ($post = \'\'))  {
    get_template_part(\'partials/challenge/content\', \'challenge-2\');
    get_template_part(\'partials/challenge/content\', \'categories\');
    get_template_part(\'partials/challenge/content\', \'snake-checklist\');
    get_template_part(\'partials/challenge/content\', \'timeline\'); 
}?>

3 个回复
SO网友:Howdy_McGee

这看起来几乎是正确的。让我们看看is_single():

适用于任何岗位类型,except attachments and pages...

如果给定的ID不是pageattachment post类型,则可以按如下方式使用该函数:

if( is_single( 2578 ) ) {
    /* ... */
} else {
    /* ... */
}
否则,如果ID是page 您可以使用的帖子类型is_page()

if( is_page( 2578 ) ) {
    /* ... */
}
ID是否应该是attachment 您可以使用的页面is_attachment()

if( is_attachment( 2578 ) ) {
    /* ... */
}
最后,如果您不确定帖子类型,可以对照global $post 对象,假设它是正确的:

global $post;
if( is_object( $post ) && 2578 == $post->ID ) {
    /* ... */
}

SO网友:Ian

功能get_the_ID() 无论帖子类型如何(如果是页面、帖子或自定义帖子),都可以使用。

您可以使用该函数执行条件检查。

if ( get_the_ID() === 2578) {
     get_template_part(\'partials/content\', \'challenge\');
} 
else{
    // Add other template calls, or additional conditions, is_single, is_archive, etc.
}?>
请注意,由于档案没有ID,因此此功能在档案上不起作用。

SO网友:Paweł Sala
<?php if( $post->ID == 21) { ?>
    <?php include(\'file_1.php\'); ?>
<?php } else { ?>
    <?php include(\'file_2.php\'); ?>
<?php } ?>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请