在自定义分类表单中插入自动聚焦

时间:2015-02-05 作者:1td

我创建了一个自定义分类法,并将其添加到“管理”菜单中。它工作得很好,但我想对其进行一些调整,以便在我选择添加新术语时,输入自动对焦会转到“名称”字段。我已经看过了编辑标签。php,找不到可以插入此内容的位置。

提前感谢!

编辑:

Howdy\\u Mcgee的代码工作得很好。现在,我需要第二次添加它以用于不同的分类法,但这次它不起作用。我更改了函数声明行和add\\u操作行中的“tag\\u focus”函数名称。对我来说,我似乎不应该改变任何其他事情,是吗?或者我可以修改第一个函数以在两个页面上都工作吗?这两种分类法的所有代码都位于子主题的函数文件中。

再次感谢!

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

您可以使用wp_register_script() 然后wp_enqueue_script() 将javascript注入wp admin。

功能。php或插件(我的个人recc将是一个简单的插件):

wp_register_script( \'focus-tag-name-script\', \'path/to/script.js\' , 10 );
wp_enqueue_script( \'focus-tag-name-script\' );
脚本:

jQuery( window ).on( \'load\', function() {
    jQuery( \'input[name="tag-name"]\' )
        .focus() // place cursor in field
        .select(); // select field contents
} );
正如评论中所要求的,这是一个插件:(我只是在这里写了这篇文章,没有经过测试,但如果有任何错误,至少应该让你找到正确的方向)

// define the plugin
jQuery( function( $ ) {
  $.fn.fieldFocus = function( options ) {

    var settings = $.extend({
        select: false
    }, options );

    this.focus() // place cursor in field
    if ( settings.selectContents ) this.select(); // select field contents
  } );
} );

// calling the plugin
jQuery( window ).on( \'load\', function() {
  // places cursor in the field
  jQuery( \'input[name="tag-name"]\' ).fieldFocus();

  // places cursor in the field and selects contents
  jQuery( \'input[name="tag-name"]\' ).fieldFocus( {
    selectContents: true
  } );
}

SO网友:Howdy_McGee

也许这对你有用:

function tag_focus() {
    if( isset( $_GET[\'taxonomy\'] ) && \'YOUR_TAXONOMY_HERE\' == $_GET[\'taxonomy\'] ) :
  ?>

    <script type="text/javascript">
        jQuery( document ).ready( function() {
            jQuery( \'#submit\' ).click( function() {
                jQuery( \'#tag-name\' ).focus();
            } );
        } );
    </script>

  <?php endif;
}
add_action( \'admin_head-edit-tags.php\', \'tag_focus\' );
这是一点JS来完成你想要的事情。如果您想在所有分类法(内置和自定义)上使用此选项,那么可以完全删除条件。JS将仅在edit-tags.php 页面由我们的操作指定。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register