Kdo má dnes svátek?

Prokažte svým návštěvníkům službu a ukažte jim, do jakého vlastně vstupují dne. Na webovém podnose jim naservírujte co je za den v týdnu, jaký je datum a kdo do má právě dnes svátek. Script, který vám poskytnu, neslouží jen wordpressu, ale použít ho můžete prakticky na jakékoliv webové stránky. Já sám ho například využil při [...]

Vytvoření a úpravy šablony založené na Twenty Eleven

Vytvoření odvozené (child) šablony »

Změna stylopisu - barva, písmo, velikost nadpisů, popisky, komentářů, postranní lišty apod.

Více zde »

Digging Into Twenty Eleven »

Replace/Remove Default Header Image Twenty Eleven Theme »

Sidebar on Single Posts and Pages »

Adding a Narrow Sidebar on Each Side of TwentyEleven Single Post View »

Plugin pro různé změny layoutu a designu Twenty Eleven » Twenty Eleven Theme Extensions Plugin »

Plugin pro 3-sloupcové varianty Twenty Eleven »

Jak přidat logo do Twenty Eleven »

Logo a nadpis v Twenty Eleven »

How to Override Theme Functions »

  1. Copy (in full) the function you want to override from the parent theme.
  2. Paste it into functions.php in the root of your child theme’s folder. If functions.php doesn’t exist, create it.
  3. Rename the function from parent_theme_fun­ction to child_theme_fun­ction.
  4. Deactivate the parent function.
  5. Activate the child function.
// Removes thematic_blogtitle from the thematic_header phase
function remove_thematic_actions() {
    remove_action('thematic_header','thematic_blogtitle',3);
}
// Call 'remove_thematic_actions' during WP initialization
add_action('init','remove_thematic_actions');

// Add our custom function to the 'thematic_header' phase
add_action('thematic_header','fancy_theme_blogtitle', 3);

Modifikace odkazu “více”

Úprava textu odkazu

<!-- more Pokračujte ve čtení -->

Doplnění obrázku

.moretext {
   width: 100px;
   height: 45px;
   background:url(/images/ilustrace.gif) no-repeat right middle;
   padding: 10px 50px 15px 5px}

Skok na začátek textu

Standardně odkaz vede na pokračování textu, nacházející se za <!-- more --> odkazem, toto chování lze změnit umístěním následujícího filtru do functions.php

function remove_more_jump_link($link) {
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

Lze použít i plugin:

More Link Modifier
http://wordpress.org/…nk-modifier/

A simple plugin that allows you to modify the link that is displayed when you use the Pokračovat ve čtení "Modifikace odkazu “více”"

Série pluginů pro spolupráci s Twitterem

Simple Twitter Connect
http://wordpress.org/…ter-connect/
http://ottopress.com/…ter-connect/

Simple Twitter Connect is a series of plugins that let you add any sort of Twitter functionality you like to a WordPress blog. This lets you have an integrated site without a lot of coding, and still letting you customize it exactly the way you'd like.

First, you activate and set up the base plugin, which makes your site have basic Twitter functionality. Then, each of the add-on plugins will let you add small pieces of specific Twitter-related functionality, one by one.

Unlike other Twitter plugins for WordPress, this one helps you create your own Twitter application and identity, so your tweets from here show up as being from Your Blog, not from some plugin system. You'll never see "posted by Simple Twitter Connect" in your tweet stream, you'll see "posted by Your Blog Name". Great way to drive traffic back to your own site and to see your own Twitter userbase.

Current add-ons

  • Login using Twitter
  • Comment using Twitter credentials
  • Users can auto-tweet their comments
  • Tweet button (official one from twitter)
  • Tweetmeme button
  • Auto-tweet new posts to an account
  • Manual Tweetbox after Publish
  • Full @anywhere support
  • Auto-link all twitter names on the site (with optional hovercards)
  • Dashboard Twitter Widget

Jak přidat automaticky hashtagy

A standard tweet containing a prefix (such as “New blog post:”), post title and a link to that post is generated automatically by the plugin.To include post categories and tags as hashtags in order to add additional metadata along with the post title add this snippet to your theme’s functions.php:

add_filter('stc_publish_text', 'add_taxonomies_to_tweets', 10, 2);

function add_taxonomies_to_tweets($output, $id) {
        if ($cats = get_the_category($id))
                foreach ($cats as $c => $cat)
                        $output = add_taxonomy_hashtag($output, $cat->cat_name);

        if ($tags = get_the_tags($id))
                foreach ($tags as $t => $tag)
                        $output = add_taxonomy_hashtag($output, $tag->name);

        return $output;
}

function add_taxonomy_hashtag($tweet, $tax) {
        if (stripos($tax, ' ')) // Remove whitespace
                $tax = str_replace(' ', '', $tax);

        if (strlen($tweet) + 1 > 140) { // Check if the new tweet is not too long
                return $tweet;
        } elseif (stripos($tweet, $tax)) {  // Replace an existing word with a tag
                return str_replace($tax, '#' . $tax, $tweet);
        } elseif (strlen($tweet) + strlen($tax) + 1 < 140) { // or simply append it
                return $tweet . ' #' . $tax;
        }

        return $tweet;
}

Trvalé odkazy v lokální instalaci XAMP

V lokální instalaci Apache obvykle defaultně nefunguje mod_rewrite, tj. obsah .htaccess je ignorován, a nastavíte-li si pak user-friendly odkazy např. pomocí /%postname%/, vrací se stránky/příspěvky jako nenalezené s kódem 404.

Napravit to lze změnou v souboru httpd.conf, který se nalézá v lokálním adresáři XAMPu \apache\conf.

Řádek

#LoadModule rewrite_module modules/mod_rewrite.so

stačí odkomentovat (vymazat znak #).

Dále je třeba zkonreolovat, zda v části

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

není zakomentována direktiva AllowOverride All (a je v tomto znění).

Po uložení httpd.conf a restartu lokálního Apache již WordPress odkazy přepisuje.

Problém s přesměrováním na jinou stránku

Potřebujeme-li v šabloně/plugi­nu/funkci přesměrovat výstup na jinou stránku, pomocí funkce wp_redirect nebo přímo přes header('Location: http://www.example.com/'), může nastat problém, signalizovaný hláškou Cannot modify header information – headers already sent by.

Lze to vyřešit několika způsoby:

  1. v php funkcí ob_start; zde vysvětlení
// hned na začátek za úvodní <?php umistime
<?php
ob_start();
...
// a úplně na konec, pred závěrečný ?> umístíme
ob_end_flush();
?>
  1. javascriptem přes window.location
<?php
function JsRedirection($url) {
?>
<script type="text/javascript">
<!–-
window.location = "<?=$url?>"
//-–>
</script>
<?php }
JsRedirection("http://www.example.com/");
?>
  1. pomocí meta-refresh
<?php echo "<meta http-equiv='refresh' content='0;url=$location' />"; ?>

Praktické útržky kódu

Title of the site

< ?php bloginfo('name'); ?>

Basic URL of the site

< ?php echo site_url(); ?>
< ?php echo home_url(); ?>

Exact URL for the site (incl. path)

< ?php bloginfo('url'); ?>

Name of the site

< ?php bloginfo('name'); ?>

Site’s description

< ?php bloginfo('description'); ?>

The style.css style's location

< ?php bloginfo('stylesheet_url'); ?>

The style.css style's directory

< ?php bloginfo('stylesheet_directory'); ?>

Location for the site’s theme files

< ?php bloginfo('template_url'); ?>

Title of the specific post or page

< ?php wp_title(); ?>
< ?php the_title(); ?>

Url of a specific post or page

< ?php the_permalink(); ?>

Category of a specific post or page

< ?php the_category(', ') ?>

Author of a specific post or page

< ?php the_author(); ?>

ID of a specific post or page

< ?php the_ID(); ?>

Link to edit a specific post or page

< ?php edit_post_link(); ?>

RSS2 URL for the site

< ?php bloginfo('rss2_url'); ?>

Content of the posts

< ?php the_content(); ?>

Header.php file's content

< ?php get_header(); ?>

Sidebar.php file's content

< ?php get_sidebar(); ?>

Footer.php file's content

< ?php get_footer(); ?>

The date in '08-18-07' format

< ?php the_time('m-d-y'); ?>

Link for the comments on the post

< ?php comments_popup_link(); ?>

Links from the blogroll

< ?php get_links_list(); ?>

Comment.php file’s content

< ?php comments_template(); ?>

**List of pages **

< ?php wp_list_pages(); ?>

List of categories

< ?php wp_list_cats(); ?>

Url to the next post

< ?php next_post_link('%link'); ?>

Url to the previous post

< ?php previous_post_link('%link'); ?>

The built-in calendar

< ?php get_calendar(); ?>

List of archives for the site

< ?php wp_get_archives(); ?>

Next and previous post link

< ?php posts_nav_link(); ?>

Include any file

< ?php include(TEMPLATEPATH . '/x'); ?>

Value for search form

< ?php the_search_query(); ?>

Prints out message

< ?php _e(’Message’); ?>

Displays the register link

< ?php wp_register(); ?>

Displays the login/logout link

< ?php wp_loginout(); ?>

Divides the content into pages

<!--next page-->

Cuts off the content and adds a link to the rest of the content

<a href="https://wordpresso.cz/prakticke-utrzky-kodu/#more-767" class="more-link">Pokračovat ve čtení<span class="screen-reader-text"> "Praktické útržky kódu"</span></a>

Práce s databází pomocí třídy $wpdb

Načtení ID a nadpisů čtyř nejnovějších příspěvků a jejich seřazení podle počtu komentářů (sestupně):

<?php
   $posts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'
   AND post_type='post' ORDER BY comment_count DESC LIMIT 0,4")

   // Echo the title of the first scheduled post
   echo $posts[0]->post_title;
?>

Objekt $results obsahuje pole s výsledky.

get_row načte pouze jediný záznam z tabulky:

<?php
   $posts = $wpdb->get_row("SELECT ID, post_title FROM wp_posts WHERE post_status = 'publish'
   AND post_type='post' ORDER BY comment_count DESC LIMIT 0,1")

   // Echo the title of the most commented post
   echo $posts->post_title;
?>

get_col načte celý sloupec:

<?php
   $posts = $wpdb->get_col("SELECT ID FROM wp_posts WHERE post_status = 'publish'
   AND post_type='post' ORDER BY comment_count DESC LIMIT 0,10")

   // Echo the ID of the 4th most commented post
   echo $posts[3]->ID;
?>

get_var načte jedinou hodnotu:

<?php
   $email = $wpdb->get_var("SELECT user_email FROM wp_users WHERE user_login = 'danielpataki' ")

   // Echo the user's email address
   echo $email;
?>

Vkládání do databáze

<?php
   // syntaxe: $wpdb->insert( $table, $data, $format);
   $wpdb->insert($wpdb->usermeta, array("user_id" => 1, "meta_key" => "awesome_factor", "meta_value" => 10), array("%d", %s", "%d"));

   // odpovídá:
   // INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES (1, "awesome_factor", 10);
?>

Updatování databáze:

// $wpdb->update($table, $data, $where, $format = null, $where_format = null);

// $where parameter - can be an array in the form of column-value pairs:
$wpdb->update( $wpdb->posts, array("post_title" => "Modified Post Title"), array("ID" => 5), array("%s"), array("%d") );

Zdroj »