De utomordentligt användbara WordPress-hackarna som du förmodligen inte har använt än

10

Nu, så ”vardaglig” som WordPress kan ha blivit – för det faktum att varannan eller tredje webbplats du stöter på drivs av WordPress – finns det alltid de vanliga ”hur fan gjorde de det här!” stunder när du rullar runt i WordPress-riket.

Trots att WordPress är så anmärkningsvärt eftertraktat av webbutvecklingsgemenskapen har det aldrig slutat att bära några otroliga knep och överraskningar i rockärmen. Även om det finns en hel ensemble av plugins som aldrig misslyckas med att ta en WordPress-webbplats funktionalitet bortom standardvärden och lyckas låta webbansvariga forma sin webbplats på exakt samma sätt som de vill, så är det WordPress-hackarna som verkligen ger webbansvariga en anpassning kapacitet av sådana som inte kan uppnås med några plugins överhuvudtaget.

WordPress-hacken etablerar ett starkt fotfäste och vinner mycket mark eftersom de icke-programmerande webbansvariga söker hjälp av vissa webbutvecklare för att injicera några funktioner på sin webbplats som verkligen skulle hjälpa dem att förbättra dess funktionalitet och ta det bortom sina kamrater. Vi gör dock ditt jobb enklare genom att slänga efter dig några kodavsnitt du skulle behöva (och vill) för att få din webbplats att rulla i precis den riktning du vill ha den.

Följande lista handlar om sådana hack som du kan implementera på din webbplats för att den ska skryta med exceptionella anpassade funktioner och visa funktioner som annars verkar ganska osannolika.

1 Aktivera kortkoder i widgets

Widgets upphör aldrig att ge vår webbplats den fördelen vi alltid tävlar om. De utgör en oumbärlig del av nästan varje WordPress-webbplats, och därför är ett sätt att förbättra deras utseende eller funktioner alltid välkommet, och det är precis vad kortkoderna är avsedda att göra. Använd ett filter för detsamma:

add_filter( 'widget_text', 'do_shortcode' );
2 Göra toppnavigeringen mer synlig

Menyn i det översta navigeringsfältet på din webbplats är förmodligen ignorerande, bara för sin position. Och det är därför du behöver flytta den och det är här att flytta den kommer att hjälpa:

#top-nav {float: right;}
3 Flytta navigeringsmenyn till mitten (kod med tillstånd: GitHub)

Det finns alla möjligheter att du kan ha bestämt dig för att justera din logotyp så att den placeras i mitten av rubriken, så du skulle behöva flytta navigeringsmenyn till mitten så att den inte ser ur platsen. Och så här gör du:

#navigation {
     position: relative;
}
 #main-nav {
     clear: left;
     float: left;
     list-style: none;
     margin: 0;
     padding: 0;
     position: relative;
     left: 50%;
     text-align: center;
}
 .nav li {
     display: block;
     float: left;
     list-style: none;
     margin: 0;
     padding: 0;
     position: relative;
     right: 50%;
}
 .nav li.hover, .nav li.hover {
     position: relative;
}
  
.nav li ul li {
     left: 0;
4 Fördröja publiceringen av ditt inlägg på RSS-flöden

Det är inte ovanligt att man gör misstag när man skriver ett inlägg, men när inläggen redan är skickade till RSS kan de mindre misstagen visa sig vara kostsamma nog. Och det är när försening av processen kommer till undsättning.

Nu kan du se till att inläggen inte går till RSS-flödet så fort du publicerar dem på din blogg. Allt du behöver göra är att lägga till denna kodbit i functions.php-filen i din webbplatss backend:

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 Vill du inte ha de cirkulära avatarerna längre? Gör dem fyrkantiga

Temat du har valt för din WordPress-webbplats kanske automatiskt ändrar avatarbilderna för att presentera dem i en cirkulär form. Men många webbansvariga skulle hellre föredra att deras avatarer visas i kvadratisk form. För detsamma fungerar den här koden från GitHub exceptionellt bra:

#post-author .profile-image img, #comments .avatar img {
border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
6 Låt ditt RSS-flöde innehålla inläggets utvalda bild

Att använda bilder i dina inlägg ger det alltid en extra push bland din publik och lockar dem att läsa och ytterligare dela det bland sina cirklar. Och när du kan använda den utvalda bilden av inlägget i dina RSS-flöden, förbättrar du inläggets räckvidd ytterligare genom att göra det visuellt mer catchy:

add_filter('the_content_feed', 'rss_post_thumbnail');
function rss_post_thumbnail($content) {
global $post;
if( has_post_thumbnail($post->ID)) $content = '
'. get_the_post_thumbnail($post->ID, 'thumbnail'). '

'. $content; return $content; }
7 Ta bort titeln på en viss sida

Även om det finns verktyg som underlättar att ta bort titlar från alla sidor på webbplatsen, vill du ibland bara ta bort dem från vissa sidor. Och här är koden du behöver för det – ersätt bara ”abcd” med sid-id-numret för alla inlägg:

.page-id-xxxx .title {
display: none;
}
8 Vill du inte ha HTML i kommentarer? Gå vidare och inaktivera den

HTML i kommentarsfältet kan leda till en lastbil med skräppost, vilket så småningom kan få allvarliga återverkningar på din webbplats. Och det är därför det är så oerhört viktigt att inaktivera HTML i kommentarsektionen för att hålla din webbplats fri från spam. För att göra det, lägg till denna kod i filen functions.php:

//As soon as someone comments
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( "'", ''', $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( ''', "'", $comment_to_display );
    return $comment_to_display;
}
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1 );
add_filter( 'comment_text', 'plc_comment_display', '', 1 );
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1 );
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1 );
// This stops WordPress from trying to automatically make hyperlinks on text:
remove_filter( 'comment_text', 'make_clickable', 9 );
9 När en användare söker efter ett visst inlägg på din webbplats, ta dem bara direkt till det kompletta inlägget

Du kanske inte ansåg att det var alltför nödvändigt, men om de användare som söker efter särskilda inlägg tas direkt till hela inlägget istället för en miniatyrbild av det med utdrag, skulle de uppskatta det. Det tvingar dem inte att fortsätta navigera och förbättrar därmed användarupplevelsen avsevärt.

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
    if (is_search()) {
        global $ks29so_query;
        if ($ks29so_query->post_count == 1 && $ks29so_query->max_num_pages == 1) {
            ks29so_redirect( get_permalink( $ks29so_query->posts['0']->ID) );
            exit;
        }
    }
}
10 Visa det mest exakta och aktuella upphovsrättsdatumet

Upphovsrätt är en oumbärlig del av alla webbplatser som innehåller mycket användbar information som webbmastern inte vill ska kopieras av de andra randomiserarna på webben. Det är därför det är viktigt att visa upphovsrättsinformation korrekt och synkroniserat med innevarande år. Följande kodbit gör det möjligt för dig att ständigt uppdatera upphovsrättsinformationen automatiskt:

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;
}
11 Omdirigera användare efter att de har loggat in

När en användare är inloggad på din webbplats kan han eller hon enkelt omdirigeras till en annan webbadress som du väljer. Allt du behöver är detta kodavsnitt i functions.php-filen:

user_level == 0)
{
ks29so_redirect( home_url() ); exit;
}
//If login user role is Contributor
else if ($current_user->user_level > 1)
{
ks29so_redirect( home_url() ); exit;
}
//If login user role is Editor
else if ($current_user->user_level >8)
{
ks29so_redirect( home_url() ); exit;
}
// For other roles
else
{
$redirect_to = 'http://google.com/';
return $redirect_to;
}
}
add_action('admin_init','redirect_user_on_role');
 
?>
12 Låt rubriken visa några personliga widgets

Rubriken på din webbplats är ett bra annonsområde där du kan visa riktigt märkbara annonser. Men en vanlig sak som observeras är att webbplatsens administratörer inte har mycket kontroll över hur de vill visa element i rubriken och detta leder till bristen på flexibilitet.

Vad administratören vill ha är anpassningsförmågan för att låta dem lägga till vad de vill till höger om logotypen, och följande kodrader låter dem göra exakt det:

if (function_exists('register_sidebar')) {
register_sidebar(array(
 'name' => 'Header Widget',
 'id' => 'header-widget',
 'description' => 'This is a widgetized area in the right side of the header.',
 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); add_action( 'woo_header_inside', 'custom_canvas_header' ); function custom_canvas_header() { ?>

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer