Några vardags hack till wordpress

Några vardags hack till wordpress

En av de allra största fördelarna med WordPress är dess förmåga att kunna utökas och skräddarsys, det finns ett helt hav av tillägg och möjligheter. Och med lite kunskaper i PHP så vidgas havet lite mer – med relativt enkla medel.

Som sagt, även fast det finns tusentals tillägg, kan man med små bitar (snippets) av kod göra små enkla tweeks.

Jag hittar ständigt nya, och kommer säkert att hitta flera smarta och enkla sätt att göra små korrigerarar/tillägg i koden som förändrar vissa funktioner till det bättre. I detta inlägg kommer jag att visa er några av de “snippets” jag hittat och själv använder.

1. Bättre bildkvalité på dina JPG bilder

Som standard komprimerar WordPress JPG bilder till 90% kvalité, vilket för en del inte märks medan andra kan tycka det vara irriterande att bilderna inte blir “perfekta”. Detta gäller säkert främst fotografer – som har ögon för dessa 10% kvalité som saknas. Men det går att åtgärda vädligt enkelt.

Genom att lägga till nedan rader i filen functions.php, kommer dina bilder att behålla 100%-ig kvalité.

add_filter( ‘jpg_quality’, ‘high_jpg_quality’ );
function high_jpg_quality() {
return 100;
}

2. Prydliga URL;er

Det är alltid värt att säkerställa att dina URL;er blir prydligt smyckade, och inte innhåller otillåtna tecken. Detta gör du med esc_url(), som nedan.

$my_url = ‘http://www.domain.se/?awesome=true’;
$url = esc_url(  $my_url );

3. Shortcodes i dina widgets

Widgets är grymma att använda, smidiga och enkla att jobba med. Dock kan man inte använda sk. shortcode (kortkod) i dessa, men det går att åtgärda så den möjligheten finns.

add_filter( ‘widget_text’, ‘do_shortcode’ );

4. Fördröjning när inlägg skall publiceras i RSS

Har du någon gång publicerat ett inlägg, och sedan insett att det är något fel i texten?
Det är ju lätt korrigera det felet, men det är försent för dina prenumeranter – ditt inlägg har redan publicerats i din RSS prenumeration.

Att skapa en fördröjning innan dina inlägg publiceras i dinn RSS ger dig en stund att kontrollera ditt inlägg, innan det skickas ut till dina prenumeranter. Lägg till denna kodbit i filen functions.php:

function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
$time_now = gmdate(‘Y-m-d H:i:s’);
$time_delay = ’15’; // integer
$time_span = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
$where = ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$time_now’) > $time_delay “;
}
return $where;
}
add_filter(‘posts_where’, ‘publish_later_on_feed’);

5. Visa featured image i din RSS feed.

Att en bild säger mer än tusen ord, har vi alla hört förrut. Uppmana dina prenumeranter att besöka din webbplats istället för att läsa ditt innehåll via RSS genom att visa dem inläggets featured image som standard.

add_filter(‘the_content_feed’, ‘rss_post_thumbnail’);
function rss_post_thumbnail($content) {
global $post;
if( has_post_thumbnail($post->ID) )
$content = ‘<p>’ . get_the_post_thumbnail($post->ID, ‘thumbnail’) . ‘</p>’ . $content;
return $content;
}

6. HTML i kommentarerna

Spam kan vara en riktig varböld att bil utsat för. Får du spam på din webbplats, som är länkad till andra länkar med mera spam?

Avaktivera funktionen för HTML i dina kommentarer för att förebygga detta problem. Då undviker du länkar, fet text och andra spam aktiviteter/taktiker. Lägg till följande bit av kod i filen functions.php:

Spam can be a real pain. Do you get spam in the comments of your site that are littered with links to even more spam?

Disable HTML in your comments to prevent links to spam, bold text and other spammy tactics. Just add the following code to your functions.php file:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {
// convert everything in a comment to display literally
$incoming_comment[‘comment_content’] = htmlspecialchars($incoming_comment[‘comment_content’]);
// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment[‘comment_content’] = str_replace( “‘”, ‘&amp;apos;’, $incoming_comment[‘comment_content’] );
return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {
// Put the single quotes back in
$comment_to_display = str_replace( ‘&amp;apos;’, “‘”, $comment_to_display );
return $comment_to_display;
}

7. Kortkod (shortkod) till din webbplats URL

Inbyggt i WordPress finns en smidig funktion för att skriva ut din webbplats url. Inte bara för att bespara oss utvecklare att skriva ut en webbplats URL varje gång, det gör också att vi slipper gå igenom all kod för att kontrollera att webbplatsens URL stämmer med domänen, då denna kod visar URL från WordPress databasen.

<?php bloginfo(‘url’); ?>

8. Nya inlägg på startsidan

Visa de senaste inläggen på din startsida utan att göra “bloggen” till din startsida, med denna fantastiska bit av kod (snippet):

<?php query_posts($query_string . ‘&showposts=5’ ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div>
<div>
<h4><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h4>
<?php the_excerpt(); ?>
<?php endwhile; endif; ?>

Om du ändrar &showposts=5 till vilken siffra du vill, så visas detta antal inlägg!

9. Ändra logotype på Dashboard

Lägg in din egna logo på Worpress dashboard (i backend) för att skapa en mer persolig installation. Detta tips kan vara trevligt till dina kunders webbplatser till exempel. Lägg bara till följande kod:

add_action(‘admin_head’, ‘custom_logo’);

function custom_logo() {
echo ‘

<style type=”text/css”><!–
#header-logo { background-image: url(‘.get_bloginfo(‘template_directory’).’/images/custom-logo.gif) !important; }
–></style>’;
}

10. Ta bort login sidans felmeddelanden

När användare fyller i felaktiga inloggningsuppgifter (användarnamn eller lösenord) visas ett felmeddelande, för att påkalla för användaren att felaktiga uppgifter har använts. Om en hacker skulle “gissa” sig till rätt uppgifter, så hjälper felmeddelandet hackern att snabbare hitta vad han/hon har fyllt i rätt eller fel.

Blockera visning av felmeddelanden, och visning av information till en eventuell hacker med följande filter:

add_filter(‘login_errors’,create_function(‘$a’, “return null;”));

11. Ta bort visning av WordPress version

Ytligare ett sätt att stänga ute hackern, är denna lilla bit kod, som döljer vilken version av WordPress du använder. Det gör det lite svårare att göra intrång på säkerhets luckor som förekommer i äldre version av WordPress.

<?php
// Remove the WP version for extra WordPress Security
function remove_wp_version(){
return ”;
}
add_filter(‘the_generator’, ‘remove_wp_version’);
?>

12. Automatisera copyright datum i sidfoten

Det finns många webbplatser som har utdaterad copyright information, medans andra bara visare nuvarande år som datum.

För att visa ditt korrekta copyright datum (Copyright © 2012 – 2014), lägg bara till denna korta bit i din fuctions.php fil:

function comicpress_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results(”
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = ‘publish’
“);
$output = ”;
if($copyright_dates) {
$copyright = “© ” . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= ‘-‘ . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

Sedan lägger du även till detta i filen footer.php:

<?php echo comicpress_copyright(); ?>

Denna kod söker igenom databasen efter det absolut första inlägget och det absulut sista inlägget, och använder sig av dessa datum. Enkelt, snabbt fixat och håller informationen uppdaterad.

13. Standard editor

Föredrar du att använda HTML editorn framför den visuella editorn när du skriver dina inlägg? Gör någon av dem som standard editor genom att lägga till följande i din functions.php fil:

# Visual Editor som standard
add_filter( ‘wp_default_editor’, create_function(”, ‘return “tinymce”;’) );

# HTML Editor som standard
add_filter( ‘wp_default_editor’, create_function(”, ‘return “html”;’) );

14. Styr användaren efter inloggning

Du kan styra användare som loggar in på webbplatsen till en URL baserad på deras angivna roll, genom en kort bit kod, som du lägger till i din functions.php fil:

<?php function redirect_user_on_role() { //retrieve current user info global $current_user; get_currentuserinfo(); //If login user role is Subscriber if ($current_user->user_level == 0)
{
wp_redirect( home_url() ); exit;
}
//If login user role is Contributor
else if ($current_user->user_level > 1)
{
wp_redirect( home_url() ); exit;
}
//If login user role is Editor
else if ($current_user->user_level >8)
{
wp_redirect( home_url() ); exit;
}
// For other rolse
else
{
$redirect_to = ‘http://adress.se/’;
return $redirect_to;
}
}
add_action(‘admin_init’,’redirect_user_on_role’);
?>

Dessa är lite vardagliga tips både för att hålla uppe säkerheten (som jag skrev lite om i går i inlägget: De 6 bästa säkerhets tilläggen) och för att göra saker lite snyggare och enklare.