单个帖子上WordPress默认特色图像的IF语句

时间:2015-03-16 作者:kia4567

我正在创建一个网站,并插入了一个博客,在我的if声明中,主页有一个特定的图像要使用,然后我的页面当然会使用我为每页选择的特色图像。我想这样做,如果我不在我的博客帖子中添加特色图片,它将默认为特定的图片。

所以,如果它没有has\\u post\\u缩略图,那么就使用“images/blog banner.jpg”。同时,如果存在has\\u post\\u缩略图,我仍然希望使用该缩略图。

我自己也尝试过,但我总是对if语句感到困惑。。

/** Add the featured image section */
add_action( \'genesis_before_header\', \'minimum_featured_image\' );
function minimum_featured_image() {
    if ( is_home() ) {
        echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    }
    elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
        echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    }
    else ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
        echo \'<div id="featured-image">\';
        echo get_the_post_thumbnail($thumbnail->ID, \'header\');
        echo \'</div>\';
    }
}
任何建议都很好!

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

所以我们有这个:

if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
}
elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
}
else ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
首先,这个if语句并不常见,对大多数人来说没有意义:

elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
我读了这篇文章,看到了:

如果post为单数,则没有post缩略图

如果我大声对别人说的话,会让我看起来很滑稽。让我们将其更改为您真正想要的内容:

如果帖子是单数且没有帖子缩略图

elseif ( is_singular( array( \'post\' ) ) && ( ! has_post_thumbnail() ) ) {
您还有一个语法错误,看看else的情况,您正在执行以下操作:

if ( condition ) {
    // stuff
} else ( new condition ) {
    // stuff
}
这不是有效的PHP语法,但即使是,它也是意外的、不常见的、难以捕捉的,并且违反了我所知道的所有编码标准。您应该改为使用elseif,所以让我们来修复它

还可以练习spartan编程并尽早返回,删除过程中的所有else语句:

if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\' ) ) && ( !has_post_thumbnail() ) ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
最后还有一个问题,不是每个函数都可以在主循环外调用,这包括has_post_thumbnail. 如果您尚未设置当前帖子,函数如何知道您在谈论哪个帖子?PHP不是灵媒,所以让我们告诉它:

global $post; 
$post->ID;
给我们:

global $post;
if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\' ) ) && ( !has_post_thumbnail( $post->ID ) ) ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail( $post->ID ) ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
最后,查看您的呼叫以获取缩略图:

echo get_the_post_thumbnail($thumbnail->ID, \'header\');
正如我前面提到的,PHP不是通灵的,再多的洞察力也无法填满$thumbnail 可能你指的是现在的帖子?如果是,请使用$post 相反

记住,你必须提前申报所有东西。如果你不告诉代码一些东西,然后尝试使用它,PHP会认为你的意思是nullfalse, 或者类似的东西,并生成警告。这会导致各种各样的问题。仅仅因为你知道你的意思/意图并不意味着电脑知道

结束

相关推荐

jquery issue in functions.php

我正在处理的主题中有一个问题,我不知道如何解决它。该主题有几个jquery脚本,需要加载到头部才能工作。如果没有所有这些,主题就失败了。这是我打电话给的人jquery-1.8.2。最小jsjquery-1.6.1。min.jsjquery。放松。1.3。jsjquery-ui-1.8.11。风俗min.jsjquery-ui-1.8.21。风俗最小js现在使用WordPress,我想您可以将jquery排队,然后加载所有版本。我的问题是,当我尝试这样做并删除上面的脚本时,一切都失败了。我将所有脚本放入函数

单个帖子上WordPress默认特色图像的IF语句 - 小码农CODE - 行之有效找到问题解决它

单个帖子上WordPress默认特色图像的IF语句

时间:2015-03-16 作者:kia4567

我正在创建一个网站,并插入了一个博客,在我的if声明中,主页有一个特定的图像要使用,然后我的页面当然会使用我为每页选择的特色图像。我想这样做,如果我不在我的博客帖子中添加特色图片,它将默认为特定的图片。

所以,如果它没有has\\u post\\u缩略图,那么就使用“images/blog banner.jpg”。同时,如果存在has\\u post\\u缩略图,我仍然希望使用该缩略图。

我自己也尝试过,但我总是对if语句感到困惑。。

/** Add the featured image section */
add_action( \'genesis_before_header\', \'minimum_featured_image\' );
function minimum_featured_image() {
    if ( is_home() ) {
        echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    }
    elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
        echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    }
    else ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
        echo \'<div id="featured-image">\';
        echo get_the_post_thumbnail($thumbnail->ID, \'header\');
        echo \'</div>\';
    }
}
任何建议都很好!

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

所以我们有这个:

if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
}
elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
}
else ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
首先,这个if语句并不常见,对大多数人来说没有意义:

elseif ( is_singular( array( \'post\' ) ) ! has_post_thumbnail() ){
我读了这篇文章,看到了:

如果post为单数,则没有post缩略图

如果我大声对别人说的话,会让我看起来很滑稽。让我们将其更改为您真正想要的内容:

如果帖子是单数且没有帖子缩略图

elseif ( is_singular( array( \'post\' ) ) && ( ! has_post_thumbnail() ) ) {
您还有一个语法错误,看看else的情况,您正在执行以下操作:

if ( condition ) {
    // stuff
} else ( new condition ) {
    // stuff
}
这不是有效的PHP语法,但即使是,它也是意外的、不常见的、难以捕捉的,并且违反了我所知道的所有编码标准。您应该改为使用elseif,所以让我们来修复它

还可以练习spartan编程并尽早返回,删除过程中的所有else语句:

if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\' ) ) && ( !has_post_thumbnail() ) ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail() ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
最后还有一个问题,不是每个函数都可以在主循环外调用,这包括has_post_thumbnail. 如果您尚未设置当前帖子,函数如何知道您在谈论哪个帖子?PHP不是灵媒,所以让我们告诉它:

global $post; 
$post->ID;
给我们:

global $post;
if ( is_home() ) {
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/sample.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\' ) ) && ( !has_post_thumbnail( $post->ID ) ) ){
    echo \'<div id="featured-image-home"><img src="\'. get_stylesheet_directory_uri() . \'/images/blog-banner.jpg" /></div>\';
    return;
}
if ( is_singular( array( \'post\', \'page\' ) ) && has_post_thumbnail( $post->ID ) ){
    echo \'<div id="featured-image">\';
    echo get_the_post_thumbnail($thumbnail->ID, \'header\');
    echo \'</div>\';
}
最后,查看您的呼叫以获取缩略图:

echo get_the_post_thumbnail($thumbnail->ID, \'header\');
正如我前面提到的,PHP不是通灵的,再多的洞察力也无法填满$thumbnail 可能你指的是现在的帖子?如果是,请使用$post 相反

记住,你必须提前申报所有东西。如果你不告诉代码一些东西,然后尝试使用它,PHP会认为你的意思是nullfalse, 或者类似的东西,并生成警告。这会导致各种各样的问题。仅仅因为你知道你的意思/意图并不意味着电脑知道