Code Snippets
Snippets giver en markant mere strømlinet og performant WordPress-installation, fordi du eliminerer en stor del af den overhead, som små plugins typisk tilfører. Når funktionalitet håndteres gennem rene kode-snippets, reduceres mængden af scripts, hooks og databasekald, og din side bliver både lettere at vedligeholde og hurtigere at indlæse.
Det har direkte effekt på teknisk SEO, hvor hastighed, stabilitet og ren kodebase spiller en afgørende rolle for placeringer i Google.
Vi anbefaler at bruge Code Snippets Pro som administrationen af snippets. Det giver en sikker og professionel struktur, hvor dine snippets lagres korrekt, versioneres bedre og kan aktiveres på præcise områder af sitet uden risiko for fejl i tema- eller core-filer. Du undgår dermed de udfordringer, der opstår, når kode ligger spredt i functions.php eller i tredjeparts plugins med unødvendige afhængigheder.
Med snippets får du et mere robust system, færre konflikter, forbedret PageSpeed performance og en installation, der er langt nemmere at skalere. Det er en moderne og effektiv måde at bygge WordPress på, hvor fokus ligger på fart, stabil drift og god teknisk SEO.
Disable Gutenberg
Fjerner behovet for plugins som Classic Editor og Disable Gutenberg.
Estimater pr. sideindlæsning:
• Ca. 10 til 25 ms hurtigere
• 1 til 3 færre databasekald
• Lidt mindre memory og kode, der skal køres
Denne snippet giver en hurtigere og mere strømlinet WordPress-oplevelse. Ved at slå Gutenberg fra og fjerne unødige block-styles reduceres sidens CSS-belastning, hvilket forbedrer performance, minimerer render-blocking ressourcer og skaber et renere grundlag for teknisk SEO. Resultatet er hurtigere indlæsning og bedre forudsætninger for højere placeringer i søgeresultaterne.
// Alternative
// Fully Disable Gutenberg editor.
add_filter('use_block_editor_for_post_type', '__return_false', 10);
// Don't load Gutenberg-related stylesheets.
add_action( 'wp_enqueue_scripts', 'remove_block_css', 100 );
function remove_block_css() {
wp_dequeue_style( 'wp-block-library' ); // WordPress core
wp_dequeue_style( 'wp-block-library-theme' ); // WordPress core
wp_dequeue_style( 'wc-block-style' ); // WooCommerce
wp_dequeue_style( 'storefront-gutenberg-blocks' ); // Storefront theme
}
Duplicate Pages and Posts
Fjerner behovet for plugins som Duplicate Post, Yoast Duplicate Post mv.
Estimater når du arbejder i backend:
• Ca. 15 til 40 ms hurtigere i admin
• 3 til 8 færre databasekald
• Ingen ekstra scripts eller indstillinger der skal loades
Koden tilføjer en “Dupliker” funktion i WordPress, så du kan kopiere et indlæg eller en side som kladde med ét klik. Den kopierer titel, indhold, taxonomier og al post meta, opretter en ny kladde og sender dig direkte til redigering af kopien. Perfekt til hurtigt at lave nye sider baseret på eksisterende.
/*
* Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
*/
function rd_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
wp_die('No post to duplicate has been supplied!');
}
/*
* Nonce verification
*/
if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
return;
/*
* get the original post id
*/
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );
/*
* if you don't want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;
/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {
/*
* new post data array
*/
$args = array(
'comment_status' => $post->comment_status,
'ping_status' => $post->ping_status,
'post_author' => $new_post_author,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name.'-new',
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title,
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
'menu_order' => $post->menu_order
);
/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );
/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}
/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if (count($post_meta_infos)!=0) {
$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == '_wp_old_slug' ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
}
$sql_query.= implode(" UNION ALL ", $sql_query_sel);
$wpdb->query($sql_query);
}
/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
exit;
} else {
wp_die('Post creation failed, could not find original post: ' . $post_id);
}
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
/*
* Add the duplicate link to action list for post_row_actions
*/
function rd_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = 'Duplicate';
}
return $actions;
}
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Samlet besparelse ved de to snippets
• 2 plugins sparet
• 25 til 65 ms hurtigere samlet
• 4 til 11 færre databasekald
• Mindre memory-forbrug og mindre kode der eksekveres
• Lettere backend og bedre teknisk SEO
Hvis du har idéer eller forslag til nye snippets, eller skal du bruge hjælp til hvad der virker bedst.
Så er du altid velkommen til at kontakte os.