我仍然是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\');
}?>
SO网友:Howdy_McGee
这看起来几乎是正确的。让我们看看is_single()
:
适用于任何岗位类型,except attachments and pages...
如果给定的ID不是page
或attachment
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,因此此功能在档案上不起作用。