
WordPress: Dodajte profile društvenih medija svojoj WordPress temi
WordPress nudi korisničke profile sa postavkama društvenih veza; međutim, dodatne društvene stranice nude mogućnosti da vaša cijela web lokacija ili blog budu prisutni u tim mrežama. Ove sedmice smo radili na web-stranici klijenta gdje smo željeli da im olakšamo postavljanje i dodavanje društvenih veza svoje stranice, pa smo dodali dodatne opcije njihovim WordPress opšte postavke stranici.
Naš prvi korak je bio ažuriranje njihovih funkcija teme (functions.php) u njihovoj dječjoj temi i registrirajte svaku od postavki koje želimo dodati:
// —————Add Settings to General Settings—————–
function social_settings_api_init() {
// Add the section to general settings so we can add our
// fields to it
add_settings_section('social_setting_section',
'Social sites on the web',
'social_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('general_setting_facebook',
'Facebook Page',
'general_setting_facebook_callback_function',
'general',
'social_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','general_setting_facebook');
add_settings_field('general_setting_twitter',
'Twitter Account',
'general_setting_twitter_callback_function',
'general',
'social_setting_section');
register_setting('general','general_setting_twitter');
add_settings_field('general_setting_youtube',
'Youtube Page',
'general_setting_youtube_callback_function',
'general',
'social_setting_section');
register_setting('general','general_setting_youtube');
add_settings_field('general_setting_linkedin',
'LinkedIn Page',
'general_setting_linkedin_callback_function',
'general',
'social_setting_section');
register_setting('general','general_setting_linkedin');
}
add_action('admin_init', 'social_settings_api_init');
Naš sljedeći korak bio je dodavanje stvarnih polja na stranici Opšte postavke koja će sačuvati informacije u njima:
// —————-Settings section callback function———————-
function social_setting_section_callback_function() {
echo '<p>This section is where you can save the social sites where readers can find you on the Internet.</p>';
}
function general_setting_facebook_callback_function() {
echo '<input name="general_setting_facebook" id="general_setting_facebook" type="text" value="'. get_option('general_setting_facebook') .'" />';
}
function general_setting_twitter_callback_function() {
echo '<input name="general_setting_twitter" id="general_setting_twitter" type="text" value="'. get_option('general_setting_twitter') .'" />';
}
function general_setting_youtube_callback_function() {
echo '<input name="general_setting_youtube" id="general_setting_youtube" type="text" value="'. get_option('general_setting_youtube') .'" />';
}
function general_setting_linkedin_callback_function() {
echo '<input name="general_setting_linkedin" id="general_setting_linkedin" type="text" value="'. get_option('general_setting_linkedin') .'" />';
}
Sada, svaki put kada klijent želi ažurirati postavke svoje društvene stranice, može samo ažurirati polja postavki unutar svojih WordPress opšte postavke. U okviru teme, jednostavno se prisjećamo postavke gdje god je potrebno (u ovom klijentovom slučaju, to je bila traka za navigaciju društvenih medija u naslovu njihove stranice):
<?php echo get_option('general_setting_facebook'); >
Može li se lako pretvoriti u dodatak?
Da, sigurno bi mogao. Samo mislim da prvo treba neka dodatna zvona i zviždaljke... kao što je automatsko objavljivanje G+ linka izdavača u zaglavlju, meta podataka otvorenog grafikona za Facebook, itd. Samo ovo nije izgledalo dovoljno cool!