如果选择了特定类别,则在管理员帖子页面上显示内容

时间:2013-12-08 10:51:43

标签: php jquery wordpress

我正在尝试让Wordpress的管理员帖子页面在选择特定类别(例如“精选”)时显示某种形式的输出。

像这样(原始页面):

original-image

当我选择“精选”类别(选择“精选”类别)时,我想要显示某些内容,例如:

when-selected

表示页面检查是否选中了特定类别,如果是,则Wordpress会生成一个选项菜单供用户填写。

我该怎么做呢?我正在看Wordpress Codex,但到目前为止,没有骰子。

3 个答案:

答案 0 :(得分:1)

你只需要在那个屏幕上打印一些jQuery ,然后就是收听实时更改并进行显示/隐藏操作。

以下内容来自this WPSE Answer。您必须调整元素ID。此外,jQuery的live方法是deprecated,也会改变它。

add_action('admin_head', 'wpse_53486_script_enqueuer');
function wpse_53486_script_enqueuer() {
    global $current_screen;
    if ( 'post' == $current_screen->id ) 
    {
        echo <<<HTML
            <script type="text/javascript">
            jQuery(document).ready( function($) {
                if ( $('#in-category-6').is(':checked') ) {
                    $("form#adv-settings label[for='myplugin_sectionid-hide']").show();
                    $('#myplugin_sectionid').show();
                } else {
                    $('#myplugin_sectionid').hide();
                    $("form#adv-settings label[for='myplugin_sectionid-hide']").hide();
                }

                $('#in-category-6').live('change', function(){
                    if ( $(this).is(':checked') ) {
                        $('#myplugin_sectionid').show();
                        $("form#adv-settings label[for='myplugin_sectionid-hide']").show();
                    } else {
                        $('#myplugin_sectionid').hide();
                        $("form#adv-settings label[for='myplugin_sectionid-hide']").hide();
                    }
                });                 
            });    
            </script>
HTML;
    }
}

targeted admin pages中打印脚本的另一种方法。

答案 1 :(得分:0)

如果你希望你的功能在保存帖子后能够正常工作(这样它已经将id DB标记为此帖子所属的女巫类别),你应该使用in_category()函数来检测这个帖子是否在您想要的类别,如果是这样 - 显示您的额外框 但是,正如我所知,你希望它在保存帖子之前也能正常工作,所以你应该使用jQuery - 检查是否选中了值x(其中x是你的类别id)的复选框,然后通过更改显示你的额外框css display属性从noneblock

答案 2 :(得分:0)

查看Advanced Custom Fields

这是一个wordpress插件,允许您为帖子添加其他字段,它可以按类别执行此操作。之前我曾使用它在帖子上设置背景图像以便在滑块中使用。