WordPress: barevný zdrojový kód

Pokud zobrazujete v příspěvcích nějaký zdrojový kód, tak není od věci barevně zvýraznit jednotlivé jeho části pro zpřehlednění stejně jako to dělají obyčejné editory. Posloužit nám k tomu může plugin CodeColorer, který nabízí spoustu alternativ co se typu zdrojového kódu týče. Jejich seznam najdete u informací o pluginu. Jeho použití je velice snadné.

Pokud například chci zobrazit zdrojový kód PHP pro funkci phpinfo, tak jednoduše použiji tuto syntaxi:

 [cc lang="php"]
 <?php

 // Show all information, defaults to INFO_ALL
 phpinfo();

 // Show just the module information.
 // phpinfo(8) yields identical results.
 phpinfo(INFO_MODULES);

 ?>
 [/cc]

A výsledný kód pak na stránce vypadá například takto:

<?php
 
 // Show all information, defaults to INFO_ALL
 phpinfo();
 
 // Show just the module information.
 // phpinfo(8) yields identical results.
 phpinfo(INFO_MODULES);
 
?>

Nefunkčnost od PHP 7

V případě že vám tento plugin přestal správně fungovat v PHP 7, mělo by stačit změnit v souboru codecolorer-core.php tento kód:

  /** Search content for code tags and replace it */
  function BeforeHighlightCodeBlock($content) {
    $content = preg_replace('#(\s*)\[cc([^\s\]_]*(?:_[^\s\]]*)?)([^\]]*)\](.*?)\[/cc\2\](\s*)#sie', '$this->PerformHighlightCodeBlock(\'\\4\', \'\\3\', $content, \'\\2\', \'\\1\', \'\\5\');', $content);
    $content = preg_replace('#(\s*)\<code(.*?)\>(.*?)\</code\>(\s*)#sie', '$this->PerformHighlightCodeBlock(\'\\3\', \'\\2\', $content, \'\', \'\\1\', \'\\4\');', $content);

    return $content;
  }

Na:

  /** Search content for code tags and replace it */
  function BeforeHighlightCodeBlock($content) {
    $content = preg_replace_callback('#(\s*)\[cc([^\s\]_]*(?:_[^\s\]]*)?)([^\]]*)\](.*?)\[/cc\2\](\s*)#si', function($matches){
      return $this->PerformHighlightCodeBlock($matches[4], $matches[3], $matches[2], $matches[1], $matches[5]);
    }, $content);
    $content = preg_replace_callback('#(\s*)\<code(.*?)\>(.*?)\</code\>(\s*)#si', function($matches){
      return $this->PerformHighlightCodeBlock($matches[3], $matches[2], '', $matches[1], $matches[4]);
    }, $content);

    return $content;
  }

Publikováno 21.1.2013 v 15:46 | Kategorie: Wordpress

WordPress: META tagy

Součástí hlavičky (<head>) WWW stránky často bývají META tagy, kde se definuje popis stránky a její klíčová slova.

V základním nastavení WordPressu není dobře možné u jednotlivých příspěvků obojí definovat. V tomto směru doporučuji stáhnout plugin All in One SEO Pack. Po jeho aktivaci bude ale ještě potřeba do functions.php přidat tento kód:

<?php

function keyword_insert() {
    global $post;

    if(is_home()) {
        $aioseop_options = get_option('aioseop_options');
        $seokeywords = trim($aioseop_options['aiosp_home_keywords']);
    } else {
        $seokeywords = stripslashes(get_post_meta($post->ID, '_aioseop_keywords', true));
    }
    $seokeyword_block = "<meta name="keywords" content="".$seokeywords."" />n";
    echo $seokeyword_block;
}

function description_insert() {
    global $post;

    if(is_home()) {
        $aioseop_options = get_option('aioseop_options');
        $seodesc = trim($aioseop_options['aiosp_home_description']);
    } else {
        $seodesc = stripslashes(get_post_meta($post->ID, '_aioseop_description', true));
    }

    $seodesc_block = "<meta name="description" content="".$seodesc.""/>n";
    echo $seodesc_block;
}

?>

A do hlavičky (<head>) ve Vaší šabloně přidat:

<?php description_insert(); ?>
<?php keyword_insert(); ?>

Publikováno 20.1.2013 v 16:19 | Kategorie: Wordpress

WordPress: .htaccess, robots.txt a sitemap.xml

Nedílnou součástí redakčního systému WordPress jsou soubory .htaccess, robots.txt a sitemap.xml. Každý má svou trochu odlišnou roli. Tento příspěvek má za cíl ukázat jak by mohl jejich obsah vypadat.

.htaccess

Tento soubor v rámci WordPressu určuje hlavně pravidlo pro přepisování adres, ale dá se tam nastavit i spousta dalších věcí. Obsah souboru může vypadat např. takto:

#domena jen bez www
#RewriteEngine On
#RewriteBase /
#RewriteCond %{HTTP_HOST} ^www.domena.koncovka [NC]
#RewriteRule ^(.*)$ http://domena.koncovka/$1 [L,R=301]

#rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L,QSA]
</IfModule>

#user-agent
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</IfModule>

#utoky
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

#omezeni pristupu do administrace na IP
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
#RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
#RewriteCond %{REMOTE_ADDR} !^XX\.XX\.XX\.XX$
#RewriteRule ^(.*)$ - [R=403,L]
#</IfModule>

#soukromy blog - omezeni na IP
#deny from all
#allow from XX.XX.XX.XX XX.XX.XX.XX XX.XX.XX.XX

#skryti udaju
ServerSignature Off

domena.koncovka je potřeba nahradit Vaší doménou a IP_ADRESA Vaší IP adresou

robots.txt

Soubor robots.txt určuje jak se mají chovat vyhledávače – kam mohou a kam ne. Jeho obsah by mohl vypadat třeba takto:

Sitemap: http://domena.koncovka/sitemap.xml

User-agent: *

Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-
Disallow: /tag
Disallow: /category/*/*
Disallow: /author
Disallow: /httpd/
Disallow: /cgi-bin
Disallow: /images/
Disallow: /search
Disallow: /feed
Disallow: /feed/
Disallow: /trackback/
Disallow: /rss
Disallow: /comments/feed
Disallow: /feed/$
Disallow: /*/feed/$
Disallow: /*/feed/rss/$
Disallow: /*/trackback/$

sitemap.xml

Pro generování souboru sitemap.xml existuje spousta pluginů. Já osobně používám hotové řešení od XML-Sitemaps.com. Výsledný sitemap.xml pak může vypadat v tomto případě takto.

Publikováno 19.1.2013 v 10:44 | Kategorie: Wordpress