WordPress Hacks para site apenas para membros

Publicados: 2020-05-19

Por padrão, o WordPress é uma ferramenta de blog. No entanto, você pode realmente personalizar para torná-lo como quiser. Muitas pessoas usam o WordPress para criar um site apenas para membros.

Você sempre pode usar um plug-in, mas se você precisar apenas de uma pequena modificação, por que instalar um plug-in quando você pode fazê-lo com poucas linhas de código. Aqui estão alguns hacks simples, mas eficazes, para criar um site exclusivo para membros.

Conteúdo apenas para membros sem plug-in

Se houver determinado conteúdo em seu site que você deseja mostrar apenas para o membro registrado, você pode fazê-lo usando o seguinte código em seu tema. O que estiver entre is_user_logged_in será visto apenas por membros.

<?php if ( is_user_logged_in() ) { ?>
// Content for Logged in user
<?php } else {?>
// Content for everyone else
<?php }?>

WordPress Hacks for Members Only Website

Mostre o formulário de login do WordPress em qualquer lugar e personalize-o

Se você deseja incluir o formulário de login do WordPress em qualquer lugar do seu tema, pode fazê-lo usando a seguinte função:

<?php ks29so_login_form(); ?>

No entanto, ele não oferece a opção de personalizar o formulário de login, porque apenas puxa diretamente o formulário de login padrão do WordPress. E se você quiser mostrar algo assim?

Aqui está o código para fazer isso. Cole o código a seguir onde quiser que o formulário apareça.

// WordPress Login Form
<?php if (!(current_user_can(‘level_0′))){ ?>
<h3>Member Login</h3>
<form action="<?php echo get_option(‘home’); ?>/wp-login.php" method="post">
<table width=’100%’ cellspacing="0" cellpadding="0">
<tr>
<td>
<label><?php _e( ‘Username’ ) ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<td>
<label><?php _e( ‘Password’ ) ?></label>
<input type="password" name="pwd" class="input" value="" />
</td>
</tr>
<tr>
<td colspan="2"><?php do_action(‘login_form’); ?>
</td>
</tr>
<tr>
<td>
<a href="<?php echo site_url(‘wp-login.php?action=lostpassword’, ‘login’) ?>" title="<?php _e(‘Password Lost and Found’) ?>"><?php _e(‘Forgot Password?’) ?></a>
</td>
<td>
<input type="submit" name="submit" value="Log In" class="button" />
<input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" />
</td>
</tr>
</table>
</form>
<?php } else { ?>
<!– When User logged in Show the following info –>
<h2>Logout</h2>
<?php get_currentuserinfo();?>
Welcome Back &nbsp<?php echo($current_user->user_login . " ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Logout</a><br />
<a href="<?php echo get_admin_url(); ?>">Admin?</a><!– If you are admin goes to admin dashboard –>
<?php }?>

Você pode adicionar uma tag CSS div para estilizá-la. A vantagem de usar este formulário de login é quase criar um mini painel para membros usando a função get_currentuserinfo() e mostrar qualquer informação sobre o usuário.

Menu WordPress personalizado para membros

Como o conteúdo, você pode criar um menu WordPress personalizado para membros. Vamos registrar o menu primeiro. Vá para o arquivo de função do seu tema (functions.php). Use o código a seguir para registrar os menus.

register_nav_menus( array(
‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ),
‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ),
‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ),
) );

Agora, coloque o seguinte código onde você quer que seu menu apareça, provavelmente dentro do arquivo header.php.

<?php
if ( is_user_logged_in() ) {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) );
} else {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘visitor’ ) );
};?>

Agora você precisa realmente criar o menu no backhand do WordPress. A configuração "Menus" deve estar na guia Aparência. Crie um menu com o nome principal e visitante. Em ambos os menus, adicione o que você deseja mostrar. Por exemplo: se você quiser que uma página apareça apenas quando o usuário estiver logado, adicione-a no menu principal.

Você também pode criar um menu de rodapé dinâmico usando o mesmo método.

Campos personalizados do WordPress e hacks para blogueiros

Você pode usar o WordPress para criar um site personalizado e com aparência profissional. Neste post, estamos compartilhando alguns truques e hacks de campo personalizados do WordPress que permitirão que você tenha um site melhor com WordPress.

Às vezes, pode haver blogueiros convidados que escrevem apenas um post em seu site e isso é tudo. Você pode usar esse método para mostrar informações regulares do autor. Tenha em mente que o autor foi registrado no WordPress. Talvez você não queira se registrar toda vez que um novo autor convidado escreve. Mas, como você ainda consegue que as informações do autor convidado apareçam no mesmo formato que o autor regular? Os campos personalizados!

Nome do autor convidado na primeira página e nas postagens individuais

A primeira coisa que precisamos fazer é definir uma instrução if do WordPress para obter o valor do campo personalizado. Dessa forma, ele só aparecerá quando o valor do arquivo personalizado for atribuído. Abra seu “index.php” e “single.php” e cole o seguinte código onde você quer que o nome do autor apareça. Pode ser depois da data ou depois dos comentários. Por exemplo após este código:

<?php the_time(‘M j, Y’) ?>
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true) ) { ?>
// check to see if custom field guest author name exists
< ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?>
< ?php } ?>\

Uma vez que colocamos a instrução if, apenas a chamamos em qualquer postagem que queremos que o nome do autor convidado apareça. O nome do autor convidado deve aparecer na primeira página e apenas para postagem específica.

Bloqueio de informações do autor convidado em postagem individual

Ok, então temos o nome aparecendo na meta descrição do post, mas algumas informações sobre o autor convidado também seriam boas.

Novamente, primeiro temos a instrução if condicional que procura pela descrição e miniatura da imagem do autor. Não esqueça de mudar a imagem do diretório. Além disso, anexamos uma classe ao bloco e ao polegar, ela permite estilizar a imagem e o bloco usando CSS.

<?php if ( get_post_meta($post->ID, ‘autho_thumb’, true) ) { ?> // checks to see if the custom field exist
<div class="writer_bio">
<img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("autho_thumb"); echo $values[0]; ?>" alt="Author Thumb" width="60" width="60" height="60" /><?php } ?
<?php if ( get_post_meta($post->ID, ‘guest_author’, true) ) { ?>
<?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></div>
<?php } ?>

Aqui está o CSS que usei

.writer_bio {
color: #666;
background: #eee;
text-transform: none !important;
font-size: 13px;
font-weight: normal;
height: 75px;
width: 600px;
padding: 6px;
padding-bottom: 6px;
padding-left: 0;
margin-bottom: 10px;
}
.writer_bio img {
padding: 0 !important;
float: left !important;
margin-left: 4px !important;
margin-top: 3px !important;
border: 2px #ccc solid !important;
height: 60px;
}

Você ainda estiliza mais com a classe auto_thumb. Feito isso, tudo o que você precisa fazer é adicionar o autor_autor e o autor_autor no campo e preencher as informações. Você pode até adicionar HTML, como link no campo personalizado.

Portanto, você tem dois campos personalizados para informações do autor convidado. Isso pode parecer um monte de etapas. Confie em mim uma vez que tenha feito isso, é apenas uma questão de adicionar a imagem e a descrição da próxima vez que você quiser fazê-lo.

Melhor campo personalizado para exibir a imagem do post na primeira página

Este método é usado para exibir um polegar para o post na frente. Eu queria ir um pouco mais longe e facilitar para o usuário front-end. Além disso, com o método de Jean todas as imagens teriam o mesmo alt=”post-image” e eu poderia não ser bom para os motores de busca. Além disso, você teria que incluir toda a URL das imagens todas as vezes. Primeiro aqui está o código:

<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);
// variable for image
$image_alt = get_post_meta($post->ID, ‘post-img’, true);// variable for description
// check if the the custom field is called
if ($postimageurl) {
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class=
quot;post-img" alt="<?php echo $image_alt; ?>"; width="500" height="300" /></a>
<?php } else { ?>

Antes de explicar o código, observe que não adicionei uma instrução else para um thumb padrão. Veja o post de Jean se você gostaria de ter uma imagem padrão se a imagem for atribuída no campo personalizado.

Primeiro temos duas variáveis ​​$postimageurl e $image_alt. O primeiro é obter a localização da imagem e o segundo é adicionar o nome da imagem. Então, novamente, definimos uma instrução if para verificar se o campo personalizado é chamado.

<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>

A diferença está acima do código que obtém a localização da imagem. Eu criei uma pasta chamada thumb no meu diretório de upload do WordPress, então ao invés de digitar o URL inteiro toda vez que eu digitaria apenas o nome da imagem, uma vez que eu carregasse a imagem na pasta.

Se você quiser um diretório diferente, como digamos que você armazenaria suas imagens na raiz do seu domínio, basta substituir <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> com http://yourwebsite.com/images/<?php echo $postimageurl; ?> http://yourwebsite.com/images/<?php echo $postimageurl; ?> .

Portanto, o código é um pouco ajustado para que cada imagem de postagem tenha um alt (título) diferente e você digite a extensão do nome da imagem em vez do URL inteiro.

Organize sua navegação no WordPress como quiser

A primeira coisa a saber são as páginas de lista do wordpress usando a tag ks29so_list_pages, que geralmente está localizada em header.php. mas você pode não querer listar todas as suas páginas. Se você quiser ocultar algumas de suas páginas de serem exibidas, faça o seguinte:

<?php ks29so_list_pages(‘include=7,13′ ); ?>
//or
<?php ks29so_list_pages(‘exclude=5,9′);? >

Excluir ou incluir funciona quase da mesma maneira. Excluir irá omitir determinadas páginas da lista de páginas do WordPress e incluir mostrará apenas o ID das páginas que você especificar. No entanto, a maioria dos blogs de web design ou quaisquer outros blogs gostam de usar tags ou categorias como navegação. Nesse caso, você pode simplesmente se livrar da tag ks29so_list e codificar a navegação personalizada. Como alternativa, você também pode fazer isso com suas tags. O benefício de codificar dessa forma é que você pode atribuir uma classe CSS para estilizar cada elemento da navegação.

Como encontrar o ID da sua página do WordPress

Recentemente, tive que encontrar um ID de página para exclusão em um modelo que estava usando e, após cerca de 10 minutos, finalmente encontrei uma maneira fácil de encontrar o ID de uma 'página' do WordPress.

Em versões mais antigas do WordPress, acredito que isso era mais fácil, mas aqui está como você pode fazer isso agora.

  1. Vá para o painel de administração do WordPress e vá para Páginas.
  2. Em seguida, passe o mouse sobre a página da qual você deseja saber o ID.
  3. Você verá o ID na barra de status na parte inferior do navegador (veja abaixo).

Se você não conseguir ver o endereço completo, tente de outra maneira (mais abaixo).

  1. Vá para o painel de administração do WordPress e vá para Páginas.
  2. Então você verá o ID na barra de endereços. Será o número após o sinal de igual.
  3. Clique na página da qual você deseja saber o ID.

Mostrando tópico de arquivo

A maioria dos temas do WordPress vem com a página archive.php. Mas tenho visto muitos sites onde as páginas de arquivo não são muito úteis e não informam aos usuários em que tópico ou categorias eles estão navegando. Você pode adicionar os seguintes códigos em seu arquivo.php para evitar confusão.

<?php /* If this is a category archive */ if (is_category()) { ?>
<h3 class="pagetitle">Current Browsing Topic: &#8216;<?php single_cat_title(); ?>&#8217;</h3>
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h3 class="pagetitle">Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h3>