Podem me mostrar alguma maneira de fazer upload de logo através do Pai
Estou trabalhando no desenvolvimento de um theme wordpress do zero e estou colocando uma página de "Theme Settings" nesse theme, para alterar coisas como a logo, links de ícones, copyright etc.
Para fazer o Painel segui esse tutorial: http://wpmidia.com.br/tutoriais/tutorial-wordpress-como-criar-abas-em-sua-theme-options-page
Preciso de um código HTML para colocar no Theme Settings em que eu possa fazer o upload de uma imagem, e armazenar no wordpress para que seja usada como logo.
Meu código está assim:
Arquivo adminsettings.php
<?php
add_action( 'init', 'wptester_admin_init' );
add_action( 'admin_menu', 'wptester_settings_page_init' );
function wptester_admin_init() {
$settings = get_option( "wptester_theme_settings" );
if ( empty( $settings ) ) {
$settings = array(
'wptester_intro' => 'Some intro text for the home page',
'wptester_tag_class' => false,
'wptester_ga' => false
);
add_option( "wptester_theme_settings", $settings, '', 'yes' );
}
}
function wptester_settings_page_init() {
$theme_data = get_theme_data( TEMPLATEPATH . '/style.css' );
$settings_page = add_theme_page( $theme_data['Name']. ' Theme Settings', $theme_data['Name']. ' Theme Settings', 'edit_theme_options', 'theme-settings', 'wptester_settings_page' );
add_action( "load-{$settings_page}", 'wptester_load_settings_page' );
}
function wptester_load_settings_page() {
if ( $_POST["wptester-settings-submit"] == 'Y' ) {
check_admin_referer( "wptester-settings-page" );
wptester_save_theme_settings();
$url_parameters = isset($_GET['tab'])? 'updated=true&tab='.$_GET['tab'] : 'updated=true';
wp_redirect(admin_url('themes.php?page=theme-settings&'.$url_parameters));
exit;
}
}
function wptester_save_theme_settings() {
global $pagenow;
$settings = get_option( "wptester_theme_settings" );
if ( $pagenow == 'themes.php' && $_GET['page'] == 'theme-settings' ){
if ( isset ( $_GET['tab'] ) )
$tab = $_GET['tab'];
else
$tab = 'homepage';
switch ( $tab ){
case 'general' :
$settings['wptester_tag_class'] = $_POST['wptester_tag_class'];
break;
case 'footer' :
$settings['wptester_ga'] = $_POST['wptester_ga'];
break;
case 'homepage' :
$settings['wptester_intro'] = $_POST['wptester_intro'];
break;
}
}
if( !current_user_can( 'unfiltered_html' ) ){
if ( $settings['wptester_ga'] )
$settings['wptester_ga'] = stripslashes( esc_textarea( wp_filter_post_kses( $settings['wptester_ga'] ) ) );
if ( $settings['wptester_intro'] )
$settings['wptester_intro'] = stripslashes( esc_textarea( wp_filter_post_kses( $settings['wptester_intro'] ) ) );
}
$updated = update_option( "wptester_theme_settings", $settings );
}
function wptester_admin_tabs( $current = 'homepage' ) {
$tabs = array( 'homepage' => 'Home', 'general' => 'General', 'footer' => 'Footer' );
$links = array();
echo '<div id="icon-themes" class="icon32"><br></div>';
echo '<h2 class="nav-tab-wrapper">';
foreach( $tabs as $tab => $name ){
$class = ( $tab == $current ) ? ' nav-tab-active' : '';
echo "<a class='nav-tab$class' href='?page=theme-settings&tab=$tab'>$name</a>";
}
echo '</h2>';
}
function wptester_settings_page() {
global $pagenow;
$settings = get_option( "wptester_theme_settings" );
$theme_data = get_theme_data( TEMPLATEPATH . '/style.css' );
?>
<div class="wrap">
<h2>Theme Settings</h2>
<?php
if ( 'true' == esc_attr( $_GET['updated'] ) ) echo '<div class="updated" ><p>Theme Settings updated.</p></div>';
if ( isset ( $_GET['tab'] ) ) wptester_admin_tabs($_GET['tab']); else wptester_admin_tabs('homepage');
?>
<div id="poststuff">
<form method="post" action="<?php admin_url( 'themes.php?page=theme-settings' ); ?>">
<?php
wp_nonce_field( "wptester-settings-page" );
if ( $pagenow == 'themes.php' && $_GET['page'] == 'theme-settings' ){
if ( isset ( $_GET['tab'] ) ) $tab = $_GET['tab'];
else $tab = 'homepage';
echo '<table class="form-table">';
switch ( $tab ){
case 'general' :
?>
<tr>
<th><label for="wptester_tag_class">Tags with CSS classes:</label></th>
<td>
<input id="wptester_tag_class" name="wptester_tag_class" type="checkbox" <?php if ( $settings["wptester_tag_class"] ) echo 'checked="checked"'; ?> value="true" />
<span class="description">Output each post tag with a specific CSS class using its slug.</span>
</td>
</tr>
<?php
break;
case 'footer' :
?>
<tr>
<th><label for="wptester_ga">Insert tracking code</label></th>
<td>
<textarea id="wptester_ga" name="wptester_ga" cols="60" rows="5"><?php echo esc_html( stripslashes( $settings["wptester_ga"] ) ); ?></textarea><br/>
<span class="description">Enter your Google Analytics tracking code</span>
</td>
</tr>
<?php
break;
case 'homepage' :
?>
<tr>
<th><label for="wptester_intro">Text Logo</label></th>
<td>
<textarea id="wptester_intro" name="wptester_intro" cols="60" rows="5" ><?php echo esc_html( stripslashes( $settings["wptester_intro"] ) ); ?></textarea><br/>
<span class="description">Digite o texto que irá aparecer na área da logo:</span>
</td>
</tr>
<?php
break;
}
echo '</table>';
}
?>
<p class="submit" style="clear: both;">
<input type="submit" name="Submit" class="button-primary" value="Update Settings" />
<input type="hidden" name="wptester-settings-submit" value="Y" />
</p>
</form>
</div>
</div>
<?php
}
Arquivo functions.php
<?php
/ WIDGETS /
if (function_exists('register_sidebar'))
{
register_sidebar(array(
'name' => 'Sidebar',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
}
register_nav_menu( 'main-menu', 'Menu Principal' );
/ Load up our theme options page and related code. /
if ( is_admin() ) require_once( TEMPLATEPATH . '/adminsettings.php' );
?>
Arquivo header.php [sAÍDA DAS INFORMAÇÕES DIGITADAS NO PAINEL DE ADMIN]
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title><?php wp_title(''); ?></title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="profile" href="[http://gmpg.org/xfn/11](http://gmpg.org/xfn/11)" />
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); wp_head(); ?>
</head>
<body>
<header id="header-geral">
<div class="container">
<a href="./index.php"><?php $opcoes = get_option('wptester_theme_settings'); echo $opcoes['wptester_intro']; ?></a>
<nav>
<?php wp_nav_menu( array( 'location'=>'main-menu', 'container'=>'div', 'container-class'=>'menu', 'menu_class'=>'ul-menu' ) ); ?>
</nav>
</div>
</header>
Agradeço a atenção e a ajuda.
Discussão (1)
Carregando comentários...