Ir para conteúdo

Arquivado

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

Douglas Nickson

Criar url amigável para uma página

Recommended Posts

Fala galera tudo bem?

 

Estou criando um blog com o wordpress e estou com um pequeno problema, tive um pequeno trabalho para conseguir criar uma página dinâmica para listar conteúdo mas com ajuda no forum oficial do wordpress eu consegui, o problema que do modo que eu consegui eu preciso passar 1 parametro pela url e como eu utilizo url amigavel no site isso não ficou bacana, tentei editar o .htaccess mas não deu muito certo, segue o que eu quero mais o menos:

 

a url ficou assim: http://meusite.com/novidades/?serie=nomedaserie

 

eu gostaria que ficasse assim http://meusite.com/novidades/serie/nomedaserie

 

o meu htaccess ficou assim

 

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /MeuSite/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /MeuSite/index.php [L]
RewriteRule ^MeuSite/novidades/serie/([^/]*)$ /MeuSite/novidades/?serie=$1 [L]
</IfModule>
# END WordPress

Mas não deu certo, se eu colocar a url http://meusite.com/novidades/serie/nomedaserie diz que a página não foi encontrada, e se eu colocar http://meusite.com/novidades/nomedaserie ele abre a página de arquivos e mostra apenas a foto do conteúdo.

 

Se alguem poder me ajudar eu agradeço.

 

Caso queiram ver o andamento do topico no blog do wordpress segue o link:

 

http://br.forums.wordpress.org/topic/criar-uma-pagina-dinamica?replies=14#post-42517

Compartilhar este post


Link para o post
Compartilhar em outros sites

entra na área administrativa www.urldosite.com.br/wp-admin

 

e lá dentro Configurações -> Links Permanentes

 

lá você deixa do jeito que você quiser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso amigo, eu já utilizo os links permanentes, o problema que pra essa página específica eu tive que passar parametros pela url ai estou tentando deixar a url dessa página amigável como as outras entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode ir na área administrativa e criar uma página. Exemplo: fotos.

E daí você pode criar um arquivo com o nome page-fotos.php e dentro dele você faz mais ou menos assim:

<?php

get_header(); ?>
    
	<div id="primary" class="site-content">

		<div id="content" role="main">

 <!-- A PARTIR DA DIV CONTENT VOCÊ CRIA O HTML E ETC DA SUA PAGE -->

<!--E aonde você quer receber o conteúdo vindo da área administrativa você adiciona esse while abaixo:-->
                 <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( 'content', 'page' ); ?>
        
      <?php endwhile; // end of the loop. ?>


			

		</div><!-- #content -->
	</div><!-- #primary -->

<?php get_footer(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm bem melhor assim, mas ai volta a questão da URL, como que faria pra passar parâmetros pela url deixando a url dinâmica?

 

Por não sei se você olhou o link do tópico no forum do wordpress onde eu explico tudo do começo, basicamente é o seguinte:

Estou fazendo um blog de série, cada série vai ter sua página especifica com seu conteúdo e nessa página vai ter um link que ao clicar nele vai mostrar todas as noticias e conteúdos referentes aquela série sacou?

 

Por isso que eu preciso passar um parâmetro pela url para deixar essa página dinamica sacou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a url dentro do arquivo você faz assim:

 

<img src="<?php bloginfo('template_directory')?>/images/produtos/foto.png"/>

 

aonde template directory eh a última pasta do seu tema instalado e a partir daí segue o caminho que você quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo amigo, deu vários erros, e desse modo também seguindo seu exemplo de url mostra todo o diretório até a pasta dos temas e não quero isso vou explicar de novo detalhadamente o que eu quero.

Eu estou fazendo um blog de séries, nesse blog eu vou criar uma página principal para cada série cadastrada e nesse página vai ter algumas informações sobre a série, ou seja, para cada série que eu postar no meu blog vai ter uma página com o nome da série.

Nessa página vai ter 1 link com nome "novidades" nesse link eu vou pegar todas as notícias que foram cadastradas relacionadas aquela série e vou listar, isso eu vou fazer dinamicamente, o meu problema é o seguinte, para fazer essa página dinâmica eu preciso passar um parâmetro através da URL que fica mais o menos assim:

http://meusite.com/novidades/?serie=nomedaserie

O problema é que eu utilizo urls amigáveis e desse modo acima fica fora do padrão do blog, o que eu gostaria de fazer era simplesmente deixar essa url amigável conforme os padrões do blog e passar os parâmetros necessários para fazer a listagem.

Abaixo segue o código que eu estou utilizando na página novidades e que faz a listagem dinâmica do conteúdo.

 

<?php echo $_GET['serie']; ?>

<?php if (isset($_GET["serie"])) : ?>
<div id="page-serie-topo">
	<div id="page-serie-thumb">
		<?php the_post_thumbnail(array(110,110)); ?>
	</div>

	<div id="page-serie-info">
		<ul>
			<li>Gênero: <?php strip_tags(the_category(', ')); ?></li>
			<li>Status: Série Renovada</li>
			<li>Estreia: EUA 02/10/2011</li>
			<li>Exibição:</li>
		</ul>
	</div>

</div>

	<div id="page-serie-menu">
		<ul>
			<li><a href="../homeland/">HOME</a> </li>
			<li><a href="<?php bloginfo( 'home' ); ?>/novidades/<?php echo the_slug() ?>">NOVIDADES</a></li>
			<li><a href="../homeland-episodios/">EPISÓDIOS</a></li>
		</ul>

	</div>

<div id="page-serie-desc">
<?php $tag = $_GET['serie'];
$pc = new WP_Query( 'tag='.$tag.'&orderby=ID&order=DESC&post_per_page=12' ); ?>

<?php while ($pc->have_posts()) : $pc->the_post(); ?>

<div class="novidades-artigos">

	<div id="novidades-thumb">
		<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(242,242)); ?></a>
	</div>
	
	<div id="novidades-title">
		<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
	</div>
	
	<div id="novidades-genero">
		<?php $excludedcats = array(3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,98,38);
			$count = 0;
			$categories = get_the_category();
			foreach($categories as $category) {
				$count++;
				if ( !in_array($category->cat_ID, $excludedcats) ) {
					echo $category->name;
					if( $count != count($categories) ){
						echo ", ";
					}
				}
			}?>
	</div>
	
	<div id="novidades-views-coments">
		<?php echo the_views(); ?> - <?php comments_popup_link('0 Comentários', '1 Comentário', '% Comentários'); ?>
	</div>
	
</div>

<?php endwhile; ?>

</div>

<?php endif; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não sei se te ajuda, mais esse caminho que eu passei funciona também na área administrativa eu vou na opção

Configurações > Links Permanentes > Estrutura Personalizada e daí eu coloco assim: /%category%/%postname%/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim amigo, eu utilizo isso no blog o problema e que para essa página especifica como eu estou passando parametros não funciona, por isso estou tentando mudar apenas a url DESSA PÁGINA para que fique de acordo com os padrões do blog.

 

To já desistindo dessa pagina, eita negocio pra da dor de cabeça....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não manjo muito de Wordpress, mas vou te comentar a experiencia que em Web, você está passando um QueryString que será lido na próxima pagina, acho difícil você conseguir alterar, uma vez que a sua outra pagina está esperando o QueryString e como a pagina faria apara saber o qual e parâmetro do QueryString?

 

Talvez alguma função que você faça em PHP que ele tenha no input de sei código que /nomedaserie é = a nomedaserie=nomedaserie

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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