使用jQuery可排序控制附件菜单顺序

时间:2011-07-15 作者:INT

我已经创建了一个元盒,它允许我上传并获取图像,然后还能够添加jquery ui sortable以对图像进行排序,但是我不知道如何添加实际功能以保存排序顺序。

如果有人有一个想法如何实现这一点或一些教程,将是有益的,请分享,我无助地停留在这里。

谢谢


编辑:基本上,我需要知道的是如何将jQuery sortable与处理不同附件菜单\\u顺序的功能联系在一起。

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

要保存菜单顺序,请使用wp_update_post() 每个附件ID及其新菜单位置:

$thisattachment = array();
$thisattachment[\'ID\'] = $thisid;
$thisattachment[\'menu_order\'] = $new_menu_position;
wp_update_post($thisattachment);
编辑-假设这些已经是附件,并且您正在更新它们?否则,您必须首先使用插入附件wp_insert_attachment

SO网友:Alex Older

在WordPress管理员中,您应该能够使用Gallery选项卡订购与帖子/页面/自定义相关的附加媒体。这将影响从DB调用它们的顺序。

SO网友:kaiser

如何获取帖子附件

如果您在单个帖子视图上,您将拥有global $post 可获得的如果要获得所有附件,请在代码中放置以下内容:

$attachments = array_values( get_children( array( 
     \'post_parent\'      => $post->post_parent
    ,\'post_status\'      => \'inherit\'
    ,\'post_type\'        => \'attachment\'
    ,\'post_mime_type\'   => \'image\'
    ,\'order\'            => \'ASC\'
    ,\'orderby\'          => \'menu_order ID\' 
) ) );
\'menu_order ID\' 表示您的订购方式\'menu_order\' \'ID\'.

如何对帖子附件进行排序注意:您的附件是对象,接近于正常帖子。他们有一个\'ID\', 得到\'menu_order\' 如页面等

在某些特殊情况下,排序不起作用,因此您可以使用回调函数来触发按ID排序:

usort( $attachments, \'sort_cb\' );
然后是比较和排序的函数。

function sort( $a, $b )
{
    if ( $a->menu_order == $b->menu_order )
        return null;

    return ( $a->menu_order > $b->menu_order ) ? +1 : -1;
}

结束

相关推荐

Ajax, filters and shortcodes

您能理解为什么我无法在ajax帖子包含中应用短代码过滤器吗?让我更好地解释一下:我已经设法在另一篇文章中包含一篇文章,通过admin-ajax.php, 正如著名的5 tips.很明显,我不想显示快捷码标签,也不想去掉它们,所以我在回应do_shortcode($post->post_content)此时,虽然我正在运行“Cleaner gallery”插件,但post gallery会被渲染,但未被过滤add_filter( \'post_gallery\', \'cleaner_gallery\