首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在插件选项页面上获取Wordpress媒体库中的项目列表?

如何在插件选项页面上获取Wordpress媒体库中的项目列表?
EN

Stack Overflow用户
提问于 2010-07-05 01:03:21
回答 1查看 3.8K关注 0票数 4

我正在写一个Wordpress插件,它在所有前端页面的页脚上方注入一个图像网格。该应用程序将显示赞助商的徽标。我想利用可湿性粉剂媒体库,因为标志已经上传到‘赞助商’页面和帖子中使用。

本质上,我被困在访问插件的选项页面上的媒体库界面。所有的跑腿工作都是在创建选项页面方面完成的,使用动作挂钩将来自插件的内容放在前端页面上,等等。我现在需要的是能够在选项页面上显示媒体库中的所有文件,并提供一个复选框或其他东西,以允许用户选择插入页脚以上的某些文件。

Media Library API似乎是针对编写主题或媒体插件的人。帮助理解该使用什么将是很棒的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-05 01:20:00

我认为你最好将你自己的专栏添加到现有的媒体库中,而不是自己尝试重新编码;

代码语言:javascript
复制
function my_media_col($cols)
{
    $cols['my_col'] = 'Footer';
    return $cols;
}
add_filter('manage_media_columns', 'my_media_col');

function handle_my_media_col($name, $id)
{
    if ($name !== 'my_col')
        return false;
    $in_footer = get_option('in_footer', array());
?>
<input type="checkbox" name="in_footer[]" value="<?php echo $id; ?>" <?php checked(in_array($id, $in_footer)); ?> />
<?php
}
add_action('manage_media_custom_column', 'handle_my_media_col', 10, 2);

然后只需连接到load-upload.php (库页面),并在发布时保存更改;

代码语言:javascript
复制
function save_my_col()
{
    if (!isset($_POST['in_footer']))
        return false;

    $in_footer = $_POST['in_footer'];
    if (is_array($in_footer))
        $in_footer = array_map('absint', $in_footer); // sanitize
    else
        $in_footer = array();

    $in_footer = array_merge(get_option('in_footer', array()), $in_footer);
    $in_footer = array_unique(array_filter($in_footer));
    update_option('in_footer', $in_footer);
}
add_action('load-upload.php', 'save_my_col');

注意:这只是一个例子,我可能有一两个打字错误。

更新:

我的代码示例应该在options表中' in _footer‘键下存储一个in数组。

在实践中,你可以像这样让所有的媒体项被标记为'in footer‘;

代码语言:javascript
复制
$query = new WP_Query(array('post__in' => get_option('in_footer', array()) ));

if ($query->have_posts()): while ($query->have_posts()): $query->the_post();
?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<?php endwhile; endif; ?>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3175479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档