Shortcodes & codes dla WordPressa

Dodatkowy plik css dla edytora Gutenberg – do functions.php

// Dodaje plik css dla edytora Gutenberg

function site_block_editor_styles() {
    wp_enqueue_style('site-block-editor-styles', get_theme_file_uri('/style-editor.css'), false, '1.0', 'all');
}
add_action('enqueue_block_editor_assets', 'site_block_editor_styles');

albo:

// Dodaje plik css dla edytora Gutenberg

function legit_block_editor_styles() {
    wp_enqueue_style('legit-editor-styles', get_theme_file_uri('/style-editor.css'), false, '1.0', 'all');
}
add_action('enqueue_block_editor_assets', 'legit_block_editor_styles');

Dodatkowy plik css dla motywu strony – do functions.php

// Dodatkowy css dla motywu (podobno poprawny, ale nie zawsze działa) - do funcions.php

wp_enqueue_style( 'customstyles', get_stylesheet_directory_uri() . '/customstyles.css' );


// Dodatkowy css dla motywu (podobno niepoprawny, ale zawsze działa) - do header.php 

<link href="<?php echo get_stylesheet_directory_uri().'/style1.css'; ?>" rel="stylesheet" />
<link href="<?php echo get_stylesheet_directory_uri().'/style2.css'; ?>" rel="stylesheet" />
<link href="<?php echo get_stylesheet_directory_uri().'/style3.css'; ?>" rel="stylesheet" />

Ukrycie paska adminbar na stronie – do functions.php

// Ukrywa pasek adminbar na stronie

function jcz_ukryj_admbar_na_stronie() {
    if (is_blog_admin()) {
        return true;
    }
    return false;
}
add_filter('show_admin_bar', 'jcz_ukryj_admbar_na_stronie');

Wyłączanie niektórych zakładek w Panelu Admina – do functions.php

// Wyłączanie niektórych zakładek w Panelu Admina

add_action('admin_menu', 'remove_menu_pages');
function remove_menu_pages() {
    remove_menu_page('link-manager.php');
    remove_menu_page('edit-comments.php');
    remove_menu_page('plugins.php');
}

Kategoria na home – do functions.php

// Kategoria na home

function my_home_category($query) {
    if ($query - > is_home() && $query - > is_main_query()) {
        $query - > set('cat', '4');
    }
}
add_action('pre_get_posts', 'my_home_category');

Dla kilku kategorii:

$query->set( 'cat', ’11 14 17’ );

Kategoria na home (2) – do functions.php

// Kategoria na home

function home_one_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() && ( ! is_admin() ) ) {
        $query->set( 'cat', '4' ); 
    }
}
add_action( 'pre_get_posts', 'home_one_category' );

Dla kilku kategorii:

$query->set( 'cat', ’11 14 17’ );

Wyłączanie jednej kategorii z home – do functions.php

// Wyłączanie jednej kategorii z home:

function exclude_category($query) {
    if ($query - > is_home()) {
        $query - > set('cat', '-70');
    }
    return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Dla kilku kategorii:

 $query - > set('cat', '-70 -3');

Usuwanie słowa „Kategoria” ze strony archiwum – do functions.php

// Usuwa słowo "Kategoria" ze strony archiwum

add_filter('get_the_archive_title', function($title) {
    if (is_category()) {
        $title = single_cat_title('', false);
    }
    elseif(is_tag()) {
        $title = single_tag_title('', false);
    }
    elseif(is_author()) {
        $title = '<span class="vcard">'.get_the_author().
        '</span>';
    }
    return $title;
});

Dodawanie class – nazwy wpisu lub strony do <body> – do functions.php

// Page Slug Body Class

function add_slug_body_class($classes) {
    global $post;
    if (isset($post)) {
        $classes[] = $post - > post_type.
        '-'.$post - > post_name;
    }
    return $classes;
}
add_filter('body_class', 'add_slug_body_class');

Dodawanie class – kategorii wpisów do <body> – do functions.php

// Dodaje class kategorii wpisów do body

function add_categories($classes = '') {
    $categories = get_the_category();
    foreach($categories as $category) {
        $classes[] = 'category-'.$category - > slug;
    }
    return $classes;
}
add_filter('body_class', 'add_categories');

Kod body id + class – do pliku php

<!-- body id + class -->

<body id="<?php echo $post->post_name; ?>" <?php body_class(); ?>>

Limit znaków excerpt – do functions.php

// Limit znaków excerpt

function custom_short_excerpt($excerpt){
    return substr($excerpt, 0, 120);
}
add_filter('the_excerpt', 'custom_short_excerpt');

Kolejność postów i stron – dodatkowa opcja – do functions.php

// Kolejność postów i stron - dodatkowa opcja 

function wpzen_add_attributes_to_post() {
    add_post_type_support('post', 'page-attributes');
}
add_action('init', 'wpzen_add_attributes_to_post');

function wpzen_change_post_order($query) {
    if ($query - > is_main_query()) {
        $query - > set('orderby', 'menu_order');
    }
}
add_action('pre_get_posts', 'wpzen_change_post_order');

Treść dla użytkowników niezalogowanych – do functions.php

// Treść dla użytkowników niezalogowanych

add_shortcode( 'visitor', 'visitor_check_shortcode' );

function visitor_check_shortcode( $atts, $content = null ) {
    if ( ( !is_user_logged_in() && !is_null( $content ) ) || is_feed() )
	return $content;
    return '';
}

Kod do postu lub strony:

[visitor]

    Treści dla osób tylko przeglądających Twoją witrynę.

[/visitor]

Treść dla użytkowników zalogowanych – do functions.php

// Treść dla użytkowników zalogowanych

add_shortcode( 'member', 'member_check_shortcode' );

function member_check_shortcode( $atts, $content = null ) {
    if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
	return $content;
    return '';
}

Kod do postu lub strony:

[member]

    To jest treść tylko dla członków.

[/member]

Ograniczanie Revisions – do config.php

po: 
/* That's all, stop editing! Happy publishing. */
przed:
/** Absolute path to the WordPress directory. */


// Wyłączanie WP Post Revisions

define('AUTOSAVE_INTERVAL', 300); // seconds
define('WP_POST_REVISIONS', false);

albo:

// Limit WP Post Revisions 

define('AUTOSAVE_INTERVAL', 300); // seconds
define('WP_POST_REVISIONS', 3);

Treść tylko na stronie głównej – do pliku php

<!-- Treść tylko na stronie głównej -->

<?php if( is_front_page() ) : ?>
    Jakaś treść
<?php endif;?>

Ilość komentarzy widoczna na stronie głównej, pod każdym postem – do pliku php

<!-- ilość komentarzy -->

<?php $comments_count = wp_count_comments( $post->ID ); ?>
<a href="<?php the_permalink(); ?> #comments" rel="nofollow" class=""><i class="fa fa-comment"></i> komentarzy <?php echo $comments_count->approved; ?></a>

Tłumaczenie słów i wyrażeń szablonu – do functions.php

// Tłumaczenie pojedynczcyh słów i wyrażeń

function ra_change_translate_text( $translated_text ) {
    if ( $translated_text == 'Old Text' ) {
	$translated_text = 'New Translation';
	}
    return $translated_text;
}
add_filter( 'gettext', 'ra_change_translate_text', 20 );

albo:

//tłumaczenie wielu słów i wyrażeń szablonu

function ra_change_translate_text_multiple( $translated ) {
    $text = array(
	'Old Text 1' => 'New Translation 1',
	'Old Text 2' => 'New Translation 2',
	'Old Text 3' => 'New Translation 3',
    );
    $translated = str_ireplace(  array_keys($text),  $text,  $translated );
    return $translated;
}
add_filter( 'gettext', 'ra_change_translate_text_multiple', 20 );

reCaptcha theme „dark” – do <head> w header.php

<!-- reCaptcha theme "dark" -->	

<script>
    document.addEventListener('DOMContentLoaded', (event) => {
	const recaptcha = document.querySelector('.g-recaptcha');
	recaptcha.setAttribute("data-theme", "dark");
    });
</script>

jquery modal – do <head> w header.php i do postu

<!-- kod do header.php -->

<!-- Remember to include jQuery :) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

<!-- jQuery Modal -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />


<!-- kod do postu -->

<!-- Modal HTML embedded directly into document -->
<div id="ex1" class="modal">
  <p>1 Thanks for clicking. That felt good.</p>
  <a href="#" rel="modal:close">Close</a>
</div>

<!-- Link to open the modal -->
<p><a href="#ex1" rel="modal:open">Open Modal</a></p>