以下程序性PHP代码将在WP仪表板的“设置”>“常规”中添加5个文本字段,但是如何使用OOP类实现相同的目的?
function link_settings_api_init() {
// Add the section to general settings so we can add our
// fields to it
add_settings_section(
'links_setting_section','Social Links','links_setting_section_callback_function','general'
);
// Add the field with the names and function to use for our new
// settings,put it in our new section
add_settings_field(
'facebook_link','Facebook Link','facebook_function','general','links_setting_section'
);
add_settings_field(
'twitter_link','Twitter Link','twitter_function','links_setting_section'
);
add_settings_field(
'linkedin_link','Linkedn Link','linkedin_function','links_setting_section'
);
add_settings_field(
'instagram_link','Instagram Link','instagram_function','links_setting_section'
);
add_settings_field(
'youtube_link','YouTube Link','youtube_function','links_setting_section'
);
// Register our setting so that $_POST handling is done for us and
// our callback function just has to echo the <input>
register_setting( 'general','facebook_link' );
register_setting( 'general','twitter_link' );
register_setting( 'general','linkedin_link' );
register_setting( 'general','instagram_link' );
register_setting( 'general','youtube_link' );
} // link_settings_api_init()
add_action( 'admin_init','link_settings_api_init' );
function links_setting_section_callback_function() {
echo '<p>Add Social Media Links for HSPH</p>';
}
function facebook_function() {
$facebook_link = get_option( 'facebook_link','' );
echo '<input id="facebook_link" style="width: 35%;" type="text" title="Facebook Link" name="facebook_link" value="' . sanitize_text_field($facebook_link) . '" />';
}
function twitter_function() {
$twitter_link = get_option( 'twitter_link','' );
echo '<input id="twitter_link" style="width: 35%;" type="text" title="Twitter Link" name="twitter_link" value="' . sanitize_text_field($twitter_link) . '" />';
}
function linkedin_function() {
$linkedin_link = get_option( 'linkedin_link','' );
echo '<input id="linkedin_link" style="width: 35%;" type="text" title="LinkedIn Link" name="linkedin_link" value="' . sanitize_text_field($linkedin_link) . '" />';
}
function instagram_function() {
$instagram_link = get_option( 'instagram_link','' );
echo '<input id="instagram_link" style="width: 35%;" type="text" title="Instagram Link" name="instagram_link" value="' . sanitize_text_field($instagram_link) . '" />';
}
function youtube_function() {
$youtube_link = get_option( 'youtube_link','' );
echo '<input id="youtube_link" style="width: 35%;" type="text" title="YouTube Link" name="youtube_link" value="' . sanitize_text_field($youtube_link) . '" />';
}
如何将以上内容转换为可在PHP OOP中使用
class MY_Plugin_Social {
public function init() {
add_action( 'admin_init','link_settings_api_init' );
// or should I use an array add_action( 'admin_init',array( $this,'link_settings_api_init' ),99 );
}
public function link_settings_api_init() {
// Add the section to general settings so we can add our
// fields to it
add_settings_section(
'links_setting_section','youtube_link' );
} // link_settings_api_init()
public function links_setting_section_callback_function() {
echo '<p>Add Social Media Links for HSPH</p>';
}
public function facebook_function() {
$facebook_link = get_option( 'facebook_link','' );
echo '<input id="facebook_link" style="width: 35%;" type="text" title="Facebook Link" name="facebook_link" value="' . sanitize_text_field($facebook_link) . '" />';
}
public function twitter_function() {
$twitter_link = get_option( 'twitter_link','' );
echo '<input id="twitter_link" style="width: 35%;" type="text" title="Twitter Link" name="twitter_link" value="' . sanitize_text_field($twitter_link) . '" />';
}
public function linkedin_function() {
$linkedin_link = get_option( 'linkedin_link','' );
echo '<input id="linkedin_link" style="width: 35%;" type="text" title="LinkedIn Link" name="linkedin_link" value="' . sanitize_text_field($linkedin_link) . '" />';
}
public function instagram_function() {
$instagram_link = get_option( 'instagram_link','' );
echo '<input id="youtube_link" style="width: 35%;" type="text" title="YouTube Link" name="youtube_link" value="' . sanitize_text_field($youtube_link) . '" />';
}
}
我收到类似于警告的回调错误:call_user_func()期望参数1为有效的回调,/ home / xyz / wp-admin / includes / template中找不到函数'links_setting_section_callback_function'或无效的函数名称。第1608行的php