Blog

10 WordPress snippets

médio / snippets

10 WordPress snippets

Hoje eu vou compartilhar alguns snippets do WordPress com vocês. O que são snippets? São pequenos códigos que vocês podem usar na criação do tema ou plugins, em caso do WordPress, ou pequenas partes dos códigos ou HTML e CSS que podem usar para criar sites e programas em geral.

Vamos lá.

Como definir os tipos de posts para pesquisa em WordPress

add_action('pre_get_posts','define_search_results');

function define_search_results($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_search) {
      $query->set('post_type', array('post','page'));
    }
  }
}

Como colocar quanto tempo atrás foi postado o artigo

function how_long_ago( $type = 'post' ) { 
	$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time'; 
	return human_time_diff($d('U'), current_time('timestamp')) . 
	" " . __('atrás');
}

Essa função você pode colocar no seu arquivo funtion.php ou no arquivo de um plugin. E depois, no template chamar ela dentro do loop de posts ou no arquivo single.php , por exemplo dessa forma

Este artigo foi postato <?php echo how_long_ago();?>

Como automaticamente logar qualquer usuário

add_shortcode('log-in-user','log_user_in');
function log_user_in()
{
	wp_set_auth_cookie( 2 );
}

Este código deve ficar no arquivo de functions.php

Como mostrar um post aleatório

$args = array( 'posts_per_page' => 1, 'orderby' => 'rand' );
	$postslist = get_posts( $args );
	foreach ( $postslist as $post ) :
	  setup_postdata( $post ); 
		$permalink 		=	get_permalink();
		$news_excerpt	=	get_the_excerpt();
		$news_content	=	substr(strip_tags(get_the_content()),0,150);
		
		$news_excerpt	=	str_replace('[&hellip;]',"- <a href='$permalink'>Leia mais</a>",$news_excerpt);
	  ?> 
		<li class="random-post" >
			<a href="<?php the_permalink() ?>" target="_parent"><?php the_title(); ?></a>
			<p class="date"><?php the_date(); ?></p>
			<div><?php echo $news_content;?>...<a href="<?php the_permalink() ?>" target="_parent">Leia mais</a></div>
		</li>
	<?php
	endforeach; 
	wp_reset_postdata();
					?>

Como adicionar campo de pesquisa no menu

function show_search_form_on_menu($items, $args) {
if( $args->theme_location == 'primary' )
        $items .= '<li class="search"><form role="search" method="get" id="searchform" action="'.home_url( '/' ).'"><input type="text" value="search" name="s" id="s" /><input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" /></form></li>';
        $items .= '<li class="search"><a href="https://hedomi.com">Hedomi</a></li>';
        return $items;
}
add_filter('wp_nav_menu_items', 'show_search_form_on_menu', 10, 2);

No theme_location você precisa definir o nome do seu menu.

Como definir o logo na página de login em WordPress

function change_wp_admin_login_logo() {
    echo '<style type="text/css">
        h1 a { background-image:url(ANY URL) !important; }
    </style>';
}
add_action('login_head', 'change_wp_admin_login_logo');

Coloquei este código no arquivo functions.php e mude ANY URL para url do seu logo.

Se no seu tema há custom logo, pode usar este código

function change_wp_admin_login_logo() {
    echo '<style type="text/css">
        h1 a { background-image:url("' . esc_url( wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), 'full' )[0] ) . '") !important; }
    </style>';
}
add_action('login_head', 'change_wp_admin_login_logo');

Como adicionar mais classes para BODY

add_filter('body_class','wdm_add_body_class');

function wdm_add_body_class($classes) {
	$classes[] = 'this-class-should-be-added-to-body-tag';
	$classes[] = 'my-custom-css-class';
	return $classes;
}

Como criar novas página na hora de ativar o tema

if (isset($_GET['activated']) && is_admin()){
        $new_page = array(
                'post_type' => 'page',
                'post_title' => 'We just activated a theme',
                'post_content' => 'Welcome! This is the first page created with this theme. Feel free to change it.',
                'post_status' => 'publish',
                'post_author' => 1,
        );
		wp_insert_post($new_page);
}

Como adicionar link de logout no template da página ou post

<?php  wp_loginout(); ?>

Como criar roles customizados no WordPress

<?php

$super_user_role = add_role(
'super_user',__('Super User'),
array()
);

$observer_user_role = add_role(
'observer',__('Observer'),
array()
);

$qatester_user_role = add_role(
'qa_tester',__('QA Tester'),
array()
);

Leave your thought here

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *