WordPress: označení externích odkazů

Často se na stránkách setkáte s tím, že externí odkazy, které vedou na cizí stránky jsou nějak označeny, aby to návštěvník stránek na první pohled zaznamenal. Já to na těchto stránkách také používám, viz rozdíl mezi odkaz a odkaz. Docílit se toho dá poměrně snadno, stačí mít obrázek, který pro dané účely budete používat a pak už jen stačí do CSS přidat něco jako:

.external {
padding-right: 10px;
background: url('external.gif') no-repeat right;
}

A pak kód do functions.php, který zajistí potřebnou funkčnost:

function autoicon($text)
{
    $return = str_replace('<a href=', '<a class="external" href=', $text);
    $return = str_replace('<a class="external" href="http://domena.koncovka', '<a target="_blank" href="http://domena.koncovka', $return);
    $return = str_replace('<a class="external" href="#', '<a href="#', $return);
    return $return;
}

add_filter('the_content', 'autoicon');

V uvedeném kódu samozřejmě nahradíme domena.koncovka za naší doménu, u které se odkazy budou zobrazovat bez obrázku.

Publikováno 22.1.2013 v 13:04 | Kategorie: Wordpress

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