Předávání parametrů v url

WordPress parametry v url automaticky „odstřihne“. Je třeba přidat do functions.php:

/—code php
function parameter_queryvars( $qvars ) {
$qvars[] = ‚yourvarname‘;
return $qvars;
}
add_filter(‚query_vars‘, ‚parameter_queryvars‘ );
\—

a následně v šabloně použít:

/—code php
global $wp_query;
if (isset($wp_query->query_vars[‚yourvarname‘])) {
print $wp_query->query_vars[‚yourvarname‘]; // něco udělej
}
\—

„Zdroj »“:https://dmjcomputerservices.com/blog/passing-url-parameters-to-a-wordpress-page/

Skloňování počtu komentářů

Buď pluginem **České komentáře**
„https://wordpress.org/plugins-wp/ceske-komentare/“:https://wordpress.org/plugins-wp/ceske-komentare/

V jednoduché administraci můžete nastavit své vlastní řetězce pro určitý počet komentářů.

A nebo přidáním vlastní funkce do functions.php:

/—code php
function pocetKomentaru(){
$pocetKomentaru = get_comments_number();
if(comments_open()){
if($pocetKomentaru == 0) $komentText = „Žádné komentáře“;
elseif($pocetKomentaru == 1) $komentText = „1 komentář“;
elseif($pocetKomentaru < 5) $komentText = $pocetKomentaru . " komentáře"; else $komentText = $pocetKomentaru . " komentářů"; return "„. $komentText.“„;
}
else return „Komentáře byly vypnuty“;
}
\—

„Zdroj »“:http://wordpress-sensei.cz/preklad-poctu-komentaru/

Vícenásobné řazení v QUERY podle custom fields

/—code php
$q = new WP_Query( array(
‚meta_query‘ => array(
‚relation‘ => ‚AND‘,
‚state_clause‘ => array(
‚key‘ => ‚state‘,
‚value‘ => ‚Wisconsin‘,
),
‚city_clause‘ => array(
‚key‘ => ‚city‘,
‚compare‘ => ‚EXISTS‘,
),
),
‚orderby‘ => array(
‚city_clause‘ => ‚ASC‘,
‚state_clause‘ => ‚DESC‘,
),
) );
\—

„Zdroj »“:https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/

Jak omezit listování v příspěvcích pouze na rubriku, ve které je příspěvek

Jednoduchý způsob přímo v šabloně:

/—code php
previous_post_link( ‚%link‘, ‚Prev post in category‘, true );
next_post_link( ‚%link‘, ‚Next post in category‘, true );
\—

V případě, že nechceme zasahovat do šablony (potřebujeme např. upravit listování v rubrice v single.php v Twentyfifteen), stačí vložit do functions.php tento kód:

/—code php
add_filter( ‚get_next_post_join‘, ‚navigate_in_same_taxonomy_join‘, 20);
add_filter( ‚get_previous_post_join‘, ‚navigate_in_same_taxonomy_join‘, 20 );
function navigate_in_same_taxonomy_join() {
global $wpdb;
return “ INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id“;
}

add_filter( ‚get_next_post_where‘ , ‚navigate_in_same_taxonomy_where‘ );
add_filter( ‚get_previous_post_where‘ , ‚navigate_in_same_taxonomy_where‘ );
function navigate_in_same_taxonomy_where( $original ) {
global $wpdb, $post;
$where = “;
$taxonomy = ‚category‘;
$op = (‚get_previous_post_where‘ == current_filter()) ? ‚<' : '>‚;
$where = $wpdb->prepare( „AND tt.taxonomy = %s“, $taxonomy );
if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
return $original ;

$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( ‚fields‘ => ‚ids‘ ) );

$term_array = array_map( ‚intval‘, $term_array );

if ( ! $term_array || is_wp_error( $term_array ) )
return $original ;

$where = “ AND tt.term_id IN (“ . implode( ‚,‘, $term_array ) . „)“;
return $wpdb->prepare( „WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = ‚publish‘ $where“, $post->post_date, $post->post_type );
}
\—

„Zdroj »“:http://presscustomizr.com/snippet/restrict-post-navigation-category/

Zobrazování metaboxů pouze na vybraných stránkách

/—code php
add_action(‚admin_init‘,’my_meta_init‘);
function my_meta_init()
{
$post_id = $_GET[‚post‘] ? $_GET[‚post‘] : $_POST[‚post_ID‘] ;
// checks for post/page ID
if ($post_id == ’84‘)
{
add_meta_box(‚my_all_meta_1‘, ‚My Custom Meta Box 1‘, ‚my_meta_setup_1‘, ‚page‘, ‚normal‘, ‚high‘);
}
$template_file = get_post_meta($post_id,’_wp_page_template‘,TRUE);
// check for a template type
if ($template_file == ‚home.php‘)
{
add_meta_box(‚my_meta_2‘, ‚My Custom Meta Box 2‘, ‚my_meta_setup_2‘, ‚page‘, ‚normal‘, ‚high‘);
}
// add a meta box for custom page types
foreach (array(‚events‘,’page‘) as $type)
{
add_meta_box(‚my_meta_3‘, ‚My Custom Meta Box 3‘, ‚my_meta_setup_3‘, $type, ‚normal‘, ‚high‘);
}
add_action(‚save_post‘,’my_meta_save‘);
}
\—

„Zdroj »“:http://www.farinspace.com/page-specific-wordpress-meta-box/

Vypnutí komentářů u WP media příloh

/—code php
function filter_media_comment_status( $open, $post_id ) {
$post = get_post( $post_id );
if( $post->post_type == ‚attachment‘ ) {
return false;
}
return $open;
}
add_filter( ‚comments_open‘, ‚filter_media_comment_status‘, 10 , 2 );
\—

„Zdroj »“:http://www.wpbeginner.com/wp-tutorials/how-to-disable-comments-on-wordpress-media-attachments/

Přidání bloku s nápovědou

Rozšíření bloku *Help* v záhlaví administrace příspěvku.

/—code php
// Add help text to a specific page

function adding_help_tab() {

$screen = get_current_screen();

if ( ‚post‘ == $screen->post_type ) {

get_current_screen()->add_help_tab( array(
‚id‘ => ‚post‘,
‚title‘ => ( ‚Writing Guidelines’ ),
‚content‘ => ‚Hello, please keep these writing guidelines in mind.

  • The content you add must be unique.
  • Add relevant and exciting images with your content.
  • Remember to add title, alt text, and a descriptive caption for your images.

‚,
) );
}
}
add_action( ‚admin_head‘, ‚adding_help_tab‘ );
\—

[* http://cdn.elegantthemes.com/blog/wp-content/uploads/2015/05/Custom-Help-Text.png *]

Úprava hlavičky e-mailu odesílaného WordPressem

Změna z “WordPress” na “Můj web/Moje jméno”

/—code php
function website_email() {
$sender_email= ‚Your email here‘;
return $sender_email;
}
function website_name(){
$site_name = ‚Your site name here‘;
return $site_name;
}
add_filter(‚wp_mail_from‘,’website_email‘);
add_filter(‚wp_mail_from_name‘,’website_name‘);
\—

„http://webania.net/customize-email-sending-header-in-wordpress/“:http://webania.net/customize-email-sending-header-in-wordpress/

Použití Awesome fontu ve WordPressu

Font icons are a way in which we can display fully responsive, customizable icons on our website without the use of additional images or sprite-sheets. Let’s use „Font Awesome“:http://fortawesome.github.io/Font-Awesome/ as they have hundreds of really amazing icons.

„Using Font Awesome with WordPress »“:http://www.sitepoint.com/using-font-awesome-with-wordpress/