Alvaro Neto

This user hasn't shared any biographical information

How to Hide the Update Reminder on WordPress

If you want to hide for any reason the WordPress update message from users on wp-admin, all you have to do is put the code bellow on your functions.php file, on your theme directory.

Se você quer por alguma razão esconder a mensagem de update do WordPress dos usuários no wp-admin, tudo que você tem que fazer é colocar o código abaixo no arquivo functions.php, no diretório de seu tema.

function hideuptdng()
    remove_action( 'admin_notices', 'update_nag', 3 );

Leave a comment

Simple Way to Make WordPress Comments Functionality Work on Your Theme / Blog / Website

Today I’ll show a very simple way to make comments function work on your WordPress website, if you are working with your own theme or modifying one that already exists. There are only three steps.
Hoje vou mostrar um jeito muito simples de fazer a função de comentários funcionar no seu site WordPress, se você está trabalhando com seu próprio tema, ou modificando um que já exista. São apenas três passos.

Step 1:

On your category page(e.g. category.php), put the code bellow, where you want the link for commenting to be shown(note that it is inside the loop). This link will take the user to your single.php page, where the comments will be displayed bellow the post.
Na sua página de categoria(por exemplo category.php), ponha o código abaixo, onde deseja mostrar o link para comentar(note que ele está dentro do loop). Este link levará o usuário à sua página single.php, onde os comentários serão exibidos abaixo do post.

// here we start the loop
if (have_posts()) :		 	 
  while (have_posts()) : the_post();	
   // this line displays the link for commenting, going to the single.php file when clicked
   <a href="<?php comments_link(); ?>">
       <?php comments_popup_link('Text you want to display','Text for one comment','% Text for various comments', 'Text for more'); ?>

Step 2:

Now,let’s put the code bellow on single.php file.
Agora, vamos colocar o código abaixo no arquivo single.php

// here we start the loop
if (have_posts()) :		 	 
  while (have_posts()) : the_post();	
   <a href="<?php comments_link(); ?>">
      <?php comments_popup_link('Text you want to display','Text for one comment','% Text for various comments', 'Text for more'); ?>
  // this line displays the comment form and the comment list

Step 3:

Save the code bellow as comments.php, on your theme directory. CSS classes and styles can be changed if wanted.
Salve o código abaixo como comments.php no diretório de seu tema. Classes CSS e estilos podem ser mudados se desejado.

	if ( 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']) )
		die ( 'Please do not load this page directly. Thanks!' );
<link href="style.css" rel="<? bloginfo('stylesheet_url'); ?>" type="text/css" />

			<div id="comments">
	$req = get_option('require_name_email'); // Checks if fields are required. Thanks, Adam. ;-)
	if ( !empty($post->post_password) ) :
		if ( $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password ) :
				<div class="nopassword"><?php _e('This post is protected. Enter the password to view any comments.') ?></div>
			</div><!-- .comments -->
<?php if ( $comments ) : ?>
<?php global $sandbox_comment_alt ?>

<?php /* numbers of pings and comments */
$ping_count = $comment_count = 0;
foreach ( $comments as $comment )
	get_comment_type() == "comment" ? ++$comment_count : ++$ping_count;
<?php if ( $comment_count ) : ?>
<?php $sandbox_comment_alt = 0 ?>

				<div id="comments-list" class="comments">
					<h3><?php printf($comment_count > 1 ? __('<span>%d</span> Comentários') : __('<span>Um</span> Comentário'), $comment_count) ?></h3>

<?php foreach ($comments as $comment) : ?>
<?php if ( get_comment_type() == "comment" ) : ?>
						<li id="comment-<?php comment_ID() ?>">
							<div class="datahora">Por <a href="<?php comment_author_url(); ?>"><?php comment_author(); ?></a> em <?php printf(__('%1$s às %2$s'),
										'#comment-' . get_comment_ID() );
										edit_comment_link(__('Edit'), ' <span class="meta-sep">|</span> <span class="edit-link">', '</span>'); ?></div>
<?php if ($comment->comment_approved == '0') _e("\t\t\t\t\t<span class='unapproved'>Seu comentário está esperando moderação.</span>\n") ?>
							<span class="comentario"><?php comment_text() ?></span>
<?php endif; /* if ( get_comment_type() == "comment" ) */ ?>
<?php endforeach; ?>

				</div><!-- #comments-list .comments -->

<?php endif; /* if ( $comment_count ) */ ?>
<?php if ( $ping_count ) : ?>
<?php $sandbox_comment_alt = 0 ?>

				<div id="trackbacks-list" class="comments">
					<h3><?php printf($ping_count > 1 ? __('<span>%d</span> Trackbacks') : __('<span>Um</span> Trackback'), $ping_count) ?></h3>

<?php foreach ( $comments as $comment ) : ?>
<?php if ( get_comment_type() != "comment" ) : ?>

						<li id="comment-<?php comment_ID() ?>" class="datahora">
							<div class="datahora"><?php printf(__('Por %1$s em %2$s às %3$s'),
									get_comment_time() );
									edit_comment_link(__('Edit' ), ' <span class="meta-sep">|</span> <span class="edit-link">', '</span>'); ?></div>
<?php if ($comment->comment_approved == '0') _e('\t\t\t\t\t<span class="unapproved">Your trackback is awaiting moderation.</span>\n') ?>
							<?php comment_text() ?>
<?php endif /* if ( get_comment_type() != "comment" ) */ ?>
<?php endforeach; ?>

				</div><!-- #trackbacks-list .comments -->

<?php endif /* if ( $ping_count ) */ ?>
<?php endif /* if ( $comments ) */ ?>
<?php if ( 'open' == $post->comment_status ) : ?>
				<div id="respond">
					<h3><?php _e('Comente') ?></h3>

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
					<p id="login-req"><?php printf(__('Você precisa estar <a href="%s" title="Log in">logado</a> para comentar.'),
					get_option('siteurl') . '/wp-login.php?redirect_to=' . get_permalink() ) ?></p>

<?php else : ?>
					<div class="formcontainer">	
						<form id="commentform" action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">

<?php if ( $user_ID ) : ?>
							<p id="login"><?php printf(__('<span class="loggedin">Logado como <a href="%1$s" title="Logged in as %2$s">%2$s</a>.</span> <span class="logout"><a href="%3$s" title="Log out of this account">Sair?</a></span>'),
								get_option('siteurl') . '/wp-admin/profile.php',
								wp_specialchars($user_identity, true),
								get_option('siteurl') . '/wp-login.php?action=logout&redirect_to=' . get_permalink() ) ?></p>

<?php else : ?>

														<div class="form-label"><label for="author"><?php _e('Name') ?></label> <?php if ($req) _e('<span class="required">*</span>') ?></div>
							<div class="form-input"><input class="campos" id="author" name="author" type="text" value="<?php echo $comment_author ?>" size="30" maxlength="20" tabindex="3" /></div>

							<div class="form-label"><label for="email"><?php _e('Email') ?></label> <?php if ($req) _e('<span class="required">*</span>') ?></div>
							<div class="form-input"><input class="campos" id="email" name="email" type="text" value="<?php echo $comment_author_email ?>" size="30" maxlength="50" tabindex="4" /></div>

							<div class="form-label"><label for="url"><?php _e('Website') ?></label></div>
							<div class="form-input"><input class="campos" id="url" name="url" type="text" value="<?php echo $comment_author_url ?>" size="30" maxlength="50" tabindex="5" /></div>

<?php endif /* if ( $user_ID ) */ ?>

							<div class="form-label"><label for="comment"><?php _e('Comment') ?></label></div>
							<div class="form-textarea"><textarea class="campos" id="comment" name="comment" cols="50" rows="8" tabindex="6"></textarea>

							<div class="form-submit"><input class="botao" id="submit" name="submit" type="submit" value="<?php _e('Comentar') ?>" tabindex="7" accesskey="P" /><input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /></div>

							<?php do_action('comment_form', $post->ID); ?>

						</form><!-- #commentform -->
					</div><!-- .formcontainer -->
<?php endif /* if ( get_option('comment_registration') && !$user_ID ) */ ?>

				</div><!-- #respond -->
<?php endif /* if ( 'open' == $post->comment_status ) */ ?>

			</div><!-- #comments -->

Now your comments funcionality must be working on your WordPress site, but let’s say you want to change a little comments CSS. Here goes a example with the basic elements. Just put it on your style.css file and change the properties you want:
Agora sua funcionalidade de comentários deve estar funcionando em seu site WordPress, mas digamos que você quer mudar um pouco o CSS dos comentários. Aqui vai um exemplo com os elementos básicos. É só colocar no seu arquivo style.css e mudar as propriedades que quiser:

#comments #comments-list ol li{list-style:none;padding:5px 5px 3px 10px;background-color:#e1e4e8;margin-bottom:10px}
#comments #respond .formcontainer #commentform .form-label label{width:auto;padding-right:2px;}
#comments #respond .formcontainer #commentform .form-input input{width:330px;height:25px}
#comments #respond .formcontainer #commentform .form-textarea textarea{width:330px;height:155px}
#comments #respond .formcontainer #commentform .form-submit #submit{margin: 10px 0 0;}
#comments #respond .formcontainer{margin-top:10px;}

Hope you find it useful.
Espero que achem útil.



Retrieving The Total Number of Posts from a Specific Custom Post Type WordPress Taxonomy

The function bellow can be used to retrieve the total number of posts from a specific custom post type taxonomy in WordPress sites. There are only two steps, supposing you’ve registered a custom post type video and a taxonomy genre as I show on a previous post.
A função abaixo pode ser usada para retornar o número total de posts de uma taxonomia específica de um tipo de post customizado. São apenas dois passos, supondo que você criou um tipo de post customizado ‘video’ e uma taxonomia ‘genre’ como eu mostro em um post anterior.

Step 1:

// put this code on your functions.php file, on your theme directory
// the function use the custom post type registration and the taxonomy slug as parameters
function wt_get_custom_taxonomy_count($ptype,$pterm) {
	global $wpdb;
	$SQL  = "SELECT count(*) FROM $wpdb->posts posts, $wpdb->terms terms, $wpdb->term_relationships rels ";
	$SQL .= "WHERE posts.post_status = 'publish' ";
	$SQL .= "AND post_type = '".$ptype."' ";
	$SQL .= "AND posts.ID = rels.object_id ";
	$SQL .= "AND terms.slug = '".$pterm."' ";
	$SQL .= "AND terms.term_id = rels.term_taxonomy_id";
	return $wpdb->get_var($SQL);

Step 2:

// put this on the theme page where you want the info to show
echo wt_get_custom_taxonomy_count('video','genre');

This code can be very useful to be used when you are working on a WordPress custom taxonomy page.
Este código pode ser bastante útil quando você está trabalhando em uma página de taxonomia customizada do WordPress.


Leave a comment

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.


Leave a comment

WordPress Custom Taxonomy Page Example – Displaying Custom Post Types Posts

There is a little explanation before going to the code, you can read it or go straight to the code, copy it, paste it and make it work.
Há uma pequena explicação antes de ir ao código, você pode ler ou ir direto ao código, copiar, colar e fazer funcionar.

First of all, you’d better take a look on my two previous posts, about registering custom post types and displaying basic info from a custom taxonomy.
It will help you to understand where we are going.

Antes de mais nada, é melhor você dar uma olhada em meus dois posts anteriores, sobre registrar tipos de posts customizados e exibir informação básica de uma taxonomia customizada.
Isso vai te ajudar a compreender aonde estamos indo.

After a custom post type called ‘videos’ and a taxonomy called ‘genre’ are registered, and some posts are associated with the ‘scifi’ term on wp-admin, we will use the taxonomy.php page, on the theme directory, to retrieve content from the custom post type. So it’s good understand the WordPress template hierarchy.
Depois que um tipo de post customizado chamado ‘videos’ e uma taxonomia chamada ‘genre’ são registrados, e alguns posts são associados com o termo ‘scifi’ no wp-admin, nós vamos usar a página taxonomy.php, no diretório do tema, para retornar conteúdo do tipo de post customizado. Então é bom entender a hierarquia de templates WordPress.

Note that genre works like a “category menu” on wp-admin and scifiworks like a “specific category”.
Note que genre funciona como um “menu de categorias” no wp-admin e scifi funciona como uma “categoria específica”.

When you ask for a url like on your browser, WordPress will search your theme directory for three files: “taxonomy-taxonomy-term.php”, “taxonomy-taxonomy.php” and “taxonomy.php” or, in our case, “taxonomy-genre-scifi.php”, “taxonomy-scifi.php” and “taxonomy.php”.

Quando você chama uma url como no seu navegador, o WordPress vai procurar no seu diretório de temas três arquivos: “taxonomy-taxonomy-term.php”, “taxonomy-taxonomy.php” and “taxonomy.php” ou, no nosso caso, “taxonomy-genre-scifi.php”, “taxonomy-scifi.php” and “taxonomy.php”.

The code for the “taxonomy.php” page to display the “scifi” posts:
O código para a página “taxonomy.php” exibir os posts “scifi” é:

// this line makes the page find the correct data when you call on your browser
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

// here we print scifi name and description
echo $term->name;
echo $term->description;

// now let's retrieve the posts data
query_posts(array( 'post_type'=>'videos', 'genre' => $term->slug, 'posts_per_page' => -1 ));
if (have_posts()) :
  while (have_posts()) : the_post();
    $cttrm = get_the_terms( get_the_ID() , 'genre' );
    // here we print the term('category') name 
    foreach ( $cttrm as $txnam ) {
      echo $txnam->name."<br />";
    echo get_the_title()."<br />";
    echo get_the_content()."<br />";

, ,


Get Post List With Thumbnails 2.0.0 – Displays a List With WordPress Posts and Custom Size Thumbnails

Get Post List With Thumbnails 2.0.0 is the second version of the second plugin I created for WordPress. It displays a posts list with thumbnails, and there’s some cool features you can configure on wp-admin.
Get Post List With Thumbnails 2.0.0 é a segunda versão do segundo plugin que criei para WordPress. Ele exibe uma lista de posts com thumbnails e há algumas características legais que você pode configurar no wp-admin.

Passing some parameters you will be able to control list orientation, display only images, display or not the post date, date format, display or not the post title, category of posts, the number of posts, number of registers per line(for horizontal orientation), the table width, and the thumbnails dimensions.
Passando alguns parâmetros, você será capaz de controlar a orientação da lista, exibição apenas de imagens, exibição ou não da data do post, o formato da data, exibição ou não do título do post, categoria dos posts, número de posts, números de registros por linha(para a orientação horizontal), a largura da tabela, e as dimensões dos thumbnails.

Take a look on the plugin installation page, and see how it works in a easy way.
Dê uma olhada na página de instalação do plugin e veja como ele funciona de maneira simples.

Please let me know if you are using the plugin(and if you allow, I’ll tweet your site to my friends) or if you have doubts and suggestions, cos this second version was based on some comments I’ve received from Get Post List With Thumbnails 1.0.0 users.
Por favor me avise se você estiver usando o plugin(e se você permitir, twittarei seu site para meus amigos) ou se você tiver dúvidas e sugestões, porque esta segunda versão foi baseada em alguns comentários que recebi dos usuários do YouTubeNails.


Displaying Info From a Specific Custom Taxonomy Term(Hierarchical Taxonomies) On WordPress

See also Custom Taxonomy Page Example.

I’ve written before about registering and displaying custom post types on WordPress. So you’d better check my previous post to understand what is coming next(the example bellow is based on the previous post).
Eu escrevi anteriormente sobre registrar e exibir tipos de posts customizados no WordPress. Então é melhor você conferir meu post anterior, para entender o que vem por aí(o exemplo abaixo é baseado no post anterior).

As you could see, one of the cool things about WordPress custom post types is that you can register also hierarchical taxonomies that will work as “regular” post categories for your custom post types.
Como você pôde ver, uma das coisas legais nos tipos de posts customizados do WordPress, é que você pode também registrar taxonomias hierárquicas, que vão funcionar como categorias “normais” para seus tipos de posts customizados.

Although these facilities, it took me some work to find a simple way to display some info from hierarchical taxonomies(or, let’s say custom categories), and bellow(in few lines), I’ll share the result of this work with you.
Apesar destas facilidades, me custou algum trabalho descobrir um jeito simples de exibir algumas informações das taxonomias hierárquicas, e abaixo(em poucas linhas), eu vou dividir o resultado deste trabalho com vocês.

// # to retrieve an array with all info from a custom term 'scifi' 
// that "begins" to a hierarquical taxonomy called 'genre'
$term = get_term_by('slug','scifi','genre');

// the example above uses slug to retrieve the info, but you can
// use other parameters, try searching for get_term_by method on WordPress Codex

// # to display 'scifi' term description defined on wp-admin
echo $term->description . "<br>";

//# you can also display the name, slug, or even the term_id
echo $term->name . "<br>";
echo $term->slug . "<br>";
echo $term->term_id . "<br>";

//# to print the array and see all the available info

Hope you find it useful. As I said, it looks simple and easy, but took me some work to find. 😉
Espero que você ache útil. Como eu disse, parece simples e fácil, mas me custou algum trabalho descobrir. 😉

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


1 Comment

%d bloggers like this: