我正在寻找一个 WP 函数,它将只读参数添加到所有页面的标题的输入中,这将使页面的标题不可更改。
提前非常感谢。
这可以通过一些简单的 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');
}
});
无需制作单独的 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' );