Archive for category General

Building a WordPress Rewrite Rule(Passing and Receiveing Parameters Using Permalink Url)

When you are working with WordPress, sometimes you may need to pass parameters to a page where you want to display posts data using the permalink url structure, e.g. http://yoursite/yourpage/2011/03/ where 2011 is the value for a year variable and 03 is the value for a month variable.
Quando você está trabalhando com WordPress, às vezes você pode precisar passar parâmetros para uma página onde quer exibir dados de posts usando a estrutura de url de permalinks, por exemplo, http://yoursite/yourpage/2011/03/ onde 2011 é o valor para uma variável de ano e 03 é o valor para uma variável de mês.

So, let’s take a look on the code.
Então, vamos dar uma olhada no código.

<?
// here we register the variables that will be used as parameters on the url
function add_my_var($public_query_vars) {
    $public_query_vars[] = 'yvar'; // year
    $public_query_vars[] = 'mvar'; // month
    return $public_query_vars;
}
add_filter('query_vars', 'add_my_var');

// building the rewrite rules, for the two parameters
function do_rewrite() {
     add_rewrite_rule('(yourpage)/[/]?([0-9]*)[/]?([0-9]*)$', 'index.php?pagename=yourpage&yvar=$matches[2]&mvar=$matches[3]','top');
}
add_action('init', 'do_rewrite');
?>

Now you are able to open a url like http://yoursite/yourpage/2011/03/, receiveing and printing some parameters. Here goes the code for printing the parameters on yourpage page.
Agora você é capaz de abrir uma url como http://yoursite/yourpage/2011/03/, recebendo e imprimindo alguns parâmetros. Aqui vai o código para imprimir os parâmetros na página yourpage

<?
echo "year:" .get_query_var( 'yvar' ) ."<br>";
echo "month: " .get_query_var( 'mvar' ) ."<br>";
echo "page :" .get_query_var('paged') ."<br>";
?>

There’s a important tip. After registering or changing any rewrite rule, go to wp-admin and simply visit the permalink settings page. It flushes all rules, so it will make your changes work 😉
Há uma dica importante. Depois de registrar ou mudar qualquer regra rewrite, vá até o wp-admin e simplesmente visite a página de configurações de permalink. Ela zera todas as regras, então isso vai fazer suas mudanças funcionar 😉

For further info, visit the Codex.
Para maiores informações, visite o Codex.

Advertisements

,

Leave a comment

Pass form values to WordPress query_posts(category name / category id) function to retrieve posts from a specific category

I was taking a look at WordPress Support Forum and found this doubt, about how to pass form values to the query_posts function to retrieve posts from a specific category.
Eu etava dando uma olhada no Forum de Suporte WordPress e achei esta dúvida, sobre como passar valores de formulários para a função query_posts, para retornar posts de uma categoria específica.

First of all, there’s a difference between working with the category name and the category id as parameters:
Primeiramente, há uma diferença entre trabalhar com o nome da categoria e o id da categoria como parâmetros:

//working with the category name
$catnam = $_GET["catnam"]; // or $_POST["catnam"]; // using GET or POST depends on your form submit method
query_posts("category_name=$catnam");

//working with the category id
$catid = $_GET["catid"]; // or $_POST["catid"]; //using GET or POST depends on your form submit method
query_posts("cat=$catid");

Well, now let’s see the complete code.
Bem, agora vamos ver o código completo.

<?
//category name or id
$catid = $_GET["catid"];

// passing the parameters to query_posts
query_posts("cat=$catid");

if (have_posts()) :
     while (have_posts()) : the_post();				 	
?>
     <div>
       <h3><a href="<?php the_permalink();?>"><?=get_the_title();?></a></h3>
     </div>
     <div>
       <p><?=get_the_content();?></p>
     </div>
<?
    endwhile;     
else:
?>
     <div>
       <p>No registers found.</p>								
     </div>
<?
endif;
?> 

Maybe you will enjoy taking a look on another post, where I talk about page navigation on Category Pages.
Talvez você curta dar uma olhada em outro post, onde eu falo sobre navegação de página em Páginas de Categoria.

,

2 Comments

Display WordPress Post List With Custom Size Thumbnails(the first image of each post)

This post moved to http://www.wpworking.com/general/display-wordpress-post-list-with-custom-size-thumbnails/

Note:

Maybe you will like to take a look on my Get Post List With Thumbnails plugin, wich is a evolution of the function bellow and you can configure and use as widget.

The function bellow, shows a list with posts and custom size thumbnails(for the post first image), linked to each post permalink. You can use it wherever you want, and you can choose a category(not required) and the number of posts(not required). Two simple steps:
A função abaixo mostra uma lista de posts com thumbnails de tamanho customizável(para a primeira imagem de cada post), linkados ao link permanente de cada post. Você pode usar onde quiser, e pode escolher uma categoria(não obrigatório) e o número de posts(não obrigatório). Dois passos simples:

1) Put this function on “functions.php” file, in your template folder:
1) Coloque esta função no arquivo “functions.php”, na pasta de seu template.

<?
// display a list of posts with custom size thumbnails, using the post first image
function getPostList($categ='',$postnr=20){
	// $categ = category name - not required
	// $postnr = number of posts you want to display - not required
	$htmlcod .= "<div id='div_postlist' style='border:1px red solid'>"."\n";
	// 
	if (have_posts()) : 				
		global $post;
	    // here we check if the user has chosen a category
	    if($categ!=''){
	      $strquery = "numberposts=".$postnr."&category_name=". $categ;				
	    }
	    else{
	      $strquery =  "numberposts=".$postnr;
	    }
			 
	    // here we get the posts
	    $myposts = get_posts($strquery);
			 		 
	    // if we want, we can display the number of registers found
	    //echo sizeof($myposts);
			 
	    if($myposts):
		 // here we go in the loop
		foreach($myposts as $post) :				 	
                    // getting the first image of the post to make the thumb
                    $args = array(
                        'post_type' => 'attachment',
                        'numberposts' => -1,
                        'post_status' => null,
                        'post_parent' => $post->ID
                    ); 
                    $attachments = get_posts($args);
                    
                    // here we set the variable for the attachment string
                    $imgsrc = "";
                    if ($attachments):
                        // here we take the first image and break the loop
                        foreach ($attachments as $attachment) {
                             // this brings the attachment array $imgobj = wp_get_attachment_image_src($attachment->ID);
                             // if you use the line obove, you can call $imgobj[0] to get the image source 
                            // you can set the thumbnail dimensions, here we use 40 x 40
                            $imgsrc = wp_get_attachment_image($attachment->ID, array(40,40), $icon = false);
                            break;
                        }
                    endif;
                    // here we start to build the return html code
                        $htmlcod .= "<p><a href='". get_permalink()."' title='". get_the_title() ."'>";
                        $htmlcod .= get_the_time('d/m/Y')."-".get_the_title();
                        $htmlcod .= "</a></p>"."\n";	
                    // if the post has at least one image attached, we display it
                    if($imgsrc!=""):
                        $htmlcod .= "<p>";                                	
                        $htmlcod .= "<a href='". get_permalink() ."' title='". get_the_title() ."'>";
                        $htmlcod .= $imgsrc; 
                        $htmlcod .= "</a>"."\n";       
                        $htmlcod .= "</p>"."\n";															
                    endif;								
		endforeach;     
	    else:
			// here goes the message, if there is no results to display
			$htmlcod = "<div>"."\n";
			$htmlcod .= "<p>No registers found.</p>"."\n";								
			$htmlcod .= "</div>"."\n";
	    endif;			
	endif;
        $htmlcod .= "</div>";
	return $htmlcod;
}
?>

2) Call the function wherever you want:
2) Chame a função, onde quiser.

// e.g. - no category, twenty(20) posts 
<? echo getPostList('',20); ?>

or

// e.g. - 'musicposts' category name, no number of posts, but the function uses 20 as default
<? echo getPostList('musicposts');  ?>

or

 // e.g. - 'gameposts' category name, no number of posts, 5 posts
<? echo getPostList('gameposts',5); ?>

Hope you find it useful.

, , ,

12 Comments

%d bloggers like this: