3

我正在寻找一个 WP 函数,它将只读参数添加到所有页面的标题的输入中,这将使页面的标题不可更改。

提前非常感谢。

4

2 回答 2

6

这可以通过一些简单的 JavaScript/jQuery 来完成。创建一个名为 admin_title_disable.js 的文件,并将其放入 functions.php 中。例如:

函数.php:

wp_register_script('admin_title_disable', '/path/to/admin_title_disable.js');
function disableAdminTitle () {
  wp_enqueue_script('admin_title_disable');
}
add_action('admin_enqueue_scripts', 'disableAdminTitle');

现在,在你的 js 文件中:

jQuery(document).ready(function ($) {
  $('#title').attr('disabled','disabled');
});

这将使用属性设置帖子和页面标题输入字段disabled。希望这可以帮助!

如果您想将此脚本限制为特定的管理页面,请将add_action挂钩包装在比较的条件中$_GET['page']。您还可以利用用于检查页面$hook时可用的参数。见这里admin_enqueue_scripts

更新::

WordPress 在帖子和页面编辑屏幕之间进行区分有点棘手,但是您可以利用隐藏的输入。:) 这是 jQuery 的更新版本,只能在页面编辑屏幕上运行:

jQuery(document).ready(function ($) {
  //find the hidden post type input, and grab the value
  if($('#post_type').val() === 'page'){
    $('#title').attr('disabled','disabled');
  }
 });
于 2012-11-23T19:47:36.750 回答
3

无需制作单独的 js 文件。将此添加到您的 function.php 将执行与 Matthew 显示的相同的操作。

function admin_footer_hook(){
        ?>
    <script type="text/javascript">
        if(jQuery('#post_type').val() === 'post'){
    jQuery('#title').prop('disabled', true);
    }
    </script>
<?php
}
add_action( 'admin_footer-post.php', 'admin_footer_hook' );
于 2014-05-04T15:48:20.560 回答