对于那些和我有同样想法的人,这里有一个解决方案:
我有各种各样的参考资料来解决这个问题,很抱歉缺少一些链接。大多数解决方案都不是我提出的,我只是挑选了一些片段并将其组合在一起。
我使用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来控制每篇文章/页面上的特色图像。
希望对某人有所帮助:)