我已经创建了一个插件,它在wordpress的“设置>常规”页面上添加了一个输入框“logo url”。可以调用此输入并正确工作。我已经创建了另一个插件,可以提取“logo url”,并应用路径为登录屏幕提取图像。一切看起来都是桃色的。
我遇到的唯一问题是,我想将“设置>常规”页上的“徽标URL”移动到“网站地址(URL)”下。我不知道怎么做。我翻遍了网页,找不到有用的答案。
我目前正在删除原始的常规页面并添加一个新的常规页面,但不确定如何解析正确的选项-general.php。
如何在常规页面上将徽标URL移得更高?
/**
* This is the code to create the Settings box on the Settings > General
*/
$new_general_setting = new new_general_setting();
class new_general_setting {
function new_general_setting( ) {
add_filter( 'admin_init' , array( &$this , 'register_fields' ) );
}
function register_fields() {
register_setting( 'general', 'URL_logo', 'esc_attr' );
add_settings_field('URL_logo', '<label for="URL_logo">'.__('Website logo (URL)' , 'URL_logo' ).'</label>' , array(&$this, 'fields_html') , 'general' );
}
function fields_html() {
$value = get_option( 'URL_logo', '' );
echo '<input type="text" id="URL_logo" name="URL_logo" value="' . $value . '" />';
}
}
最佳答案
不,这是不可能的。wordpress先打印它的东西,然后是我们的。必须用jquery完成。
add_action( 'admin_footer-options-general.php', function()
{
?>
<script type="text/javascript">
jQuery(document).ready( function($)
{
var son = $("label[for='URL_logo']").parent().parent(); // Our setting field
var father = $("label[for='home']").parent().parent(); // WordPress setting field
son.insertAfter(father);
});
</script>
<?php
});
建议的方法是在
"admin_print_scripts-$hookname"
的操作调用中将js排队。注意admin_footer
和admin_head
中使用的钩子名称。由于您的字段只在页面加载后更改,因此我们可以注意到“跳转”。要使其平滑,我们可以使用:
add_action( 'admin_head-options-general.php', function()
{
echo '<style>#wpbody .wrap form{display:none}</style>';
});
并在
replaceWith()
之后添加此jquery:$('#wpbody .wrap form').fadeIn('slow');
关于php - 在WordPress常规设置页面中排序输入字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19168370/