如何根据页面的特色图像管理滑块的背景图像?

时间:2017-12-06 作者:atempel

我有各种带有滑块的页面,我需要让客户端能够以简单的方式更改滑块中的图像。

我考虑根据每个页面的特色图像设置滑块图像背景,以便为客户端提供一个前端解决方案来进行此控制,因为我没有创建主题。

有人有过这个问题吗?欢迎提出任何解决方案或想法:)

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

对于那些和我有同样想法的人,这里有一个解决方案:

我有各种各样的参考资料来解决这个问题,很抱歉缺少一些链接。大多数解决方案都不是我提出的,我只是挑选了一些片段并将其组合在一起。

我使用Revolution Slider和OptionTree创建滑块和前端选项供客户端使用。

“functions.php”上需要两段代码:

//Function to get id based on slug/link
function get_attachment_id_from_src ($image_src) {
    global $wpdb;
    $query = "SELECT ID FROM {$wpdb->posts} WHERE guid=\'$image_src\'";
    $id = $wpdb->get_var($query);
    return $id;
}

// Define Featured Image based on OptionTree Theme Options
function defineFeaturedImage () {
    wp_reset_query();

    if (is_page()) {
        $page_id = get_the_ID();

        $post_slug = get_post_field( \'post_name\', get_post() );

        if (is_page(\'/\')) {
            $optiontree_id = \'bg_home\';

        } elseif (is_page(\'firstpage\')) {
            $optiontree_id = \'bg_firstpage\';

        }
    }

    $url_featured = ot_get_option( $optiontree_id );

    $featured_id = get_attachment_id_from_src( $url_featured );

    if (!empty($page_id) && !empty($featured_id)) {

        set_post_thumbnail( $page_id, $featured_id );

    }
}
add_action( \'pre_get_posts\', \'defineFeaturedImage\', 10, 3);
之后,只需使用ID 就像您需要更改的每个页面一样(您需要添加更多elseif 要更改更多页面,此代码仍然需要一次添加一个页面)。在旋转滑块上,您需要将滑块配置为"Post Based" sliders type.

这样,revolution slider将更改其背景(如果您将其设置为基于帖子/页面特色图像),甚至可以基于帖子/页面在slider中添加wordpress中的任何数据。

因此,您只需使用上面的代码和OptionTree来控制每篇文章/页面上的特色图像。

希望对某人有所帮助:)

结束

相关推荐

Remove P tags from images

我使用的是WordPress 4.2.2,每次我向wysiwyg添加图像时,它都会将输出的图像包装在段落标记中。我需要去掉这些标签。我在网上找到的所有东西都是从2011年开始的,而且似乎都不起作用。我试着把东西放在函数中。php类:function filter_ptags_on_images($content){ return preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a&g