POST格式-如何在更改格式时切换元框?

时间:2011-04-14 作者:kaiser

问题

在意识到post格式非常流行,但这只是一个非常粗略的概念之后,我发现用户将陷入可能的陷阱。

发布格式。。。

使用后置元字段(&L);用户不记得确切的元密钥名称从post editor获取链接/嵌入/任意对象(&L);用户输入错误数据

Idea post格式有一个自定义的元框,只允许输入预期的数据。

这个想法本身并没有那么糟糕,但仍然存在用户必须解决的问题

将数据放入正确的元框,然后选择相应的post格式

    问题

    我要搜索的是

    根据用户在post formats元框内所做的选择,切换(ajax)元框(或仅切换其内容)的解决方案

    OR...

    • 使用元框内的ajax/jquery ui选项卡切换元框内容,并将相应的帖子格式保存到“save\\u post”上。注意:
      我没有搜索确切的元框内容。我最感兴趣的是从不同的角度看“周围环境”code 示例。

      非常感谢。

2 个回复
最合适的回答,由SO网友:Drew Gourley 整理而成

我曾经这样做过,但当你点击某个类别(本质上是相同的)时,它肯定不是真正的ajax解决方案,它只是用设置隐藏和显示div,但它是一个有效的解决方案。您肯定需要根据自己的需要修改它,但如果您掌握了jQuery,我相信您可以根据自己的需要修改它。如果你对你的需求更具体一点,我很乐意编辑这篇文章,以更准确地满足你的需求。

代码:

我在一个插件中使用了这个,但是你可以把它放到你的主题函数中。php

function customadmin_testimonial() {
    if ( is_admin() ) {
        $script = <<< EOF
<script type=\'text/javascript\'>
    jQuery(document).ready(function($) {
        $(\'#testimonial-information\').hide();
        $(\'#in-category-3\').is(\':checked\') ? $("#testimonial-information").show() : $("#testimonial-information").hide();
        $(\'#in-category-3\').click(function() {
            $("#testimonial-information").toggle(this.checked);
        });
    });
</script>
EOF;
        echo $script;
    }
}
add_action(\'admin_footer\', \'customadmin_testimonial\');
基本上,这里有一个jQuery脚本,它最初隐藏了一个我已经设置好的元框。该框的ID是#证明信息。然后检查是否选中了特定类别的框,如果选中,则显示该框。然后,它侦听特定类别框上的单击,并切换其可见性。

结果是:

只有当用户选择了特定类别时才可见的元框。您所需要做的就是设置元数据库,并获取所需元素的所有ID。您需要元数据库的ID以及相关复选框。那么你所需要做的就是按照这个公式来得到你想要的东西。

如果您已经完成了所有设置,但在编写javascript时遇到了问题,只需向我提供元盒的ID和相应的复选框,我将非常乐意为您编写。

SO网友:kaiser

这是最后一个javascript函数。它应该连接到admin_footer

/**
 * jQuery show/hide for meta box, post editor meta box
 * 
 * Hides/Shows boxes on demand - depending on your selection inside the post formats meta box
 */
function wpse14707_scripts()
{
    wp_enqueue_script( \'jquery\' );

    $script = \'<<< EOF
    <script type="text/javascript">
        jQuery( document ).ready( function($)
            {
                $( "#post_format_box" ).addClass( "hidden" );

                $( "input#post-format-0" ).change( function() {
                    $( "#postdivrich" ).removeClass( "hidden" );
                    $( "#post_format_box" ).addClass( "hidden" );
                } );

                $( "input:not(#post-format-0)" ).change( function() {
                    $( "#postdivrich" ).addClass( "hidden" );
                    $( "#post_format_box" ).removeClass( "hidden" );
                } );

                $( "input[name=\\"post_format\\"]" ).click( function() {
                    var mydiv = $(this).attr( "id" ).replace( "post-format-", "" );
                    $( "#post_format_box div.inside div" ).addClass("hidden");
                    $( "#post_format_box div.inside div#"+mydiv).removeClass( "hidden" );
                } );
            }
        );
    </script>
    EOF\';

    return print $script;
}
add_action( \'admin_footer\', \'wpse14707_scripts\' );

结束

相关推荐

将媒体上传器放在Metabox中

我发现没有必要用“添加图像”按钮将我带到另一个屏幕,让我可以将内容上传到帖子中。理想情况下,我希望有一个元框,可以选择直接在元框中添加图像。我通过复制媒体上传表单的源代码并将其粘贴到元框中,获得了一些功能。我选择的图像已上载,但我没有显示任何进度条,我需要找到一种方法,在下面列出附加的图像,以便更好地概述。有人做到了吗?代码:function add_image_test() { ?> <script type=\"text/javascript\"> //&l