کتابخانه کد و توابع اختصاصی بیسکو وب

توابع تمیز، هوک‌های کارآمد و اسنیپت‌های تست‌شده برای وردپرس، ووکامرس، لاراول و وب مدرن جهت حذف افزونه‌های سنگین، بهبود نمره رندر و سرعت، با امکان کپی فوری و دانلود به عنوان افزونه آماده.

۱۰۰ قطعه کد آماده ۴۰۵۴۸ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب

تعریف لینک کانونیکال اختصاصی در وردپرس (Custom Canonical URL)

با بازتعریف تگ کانونیکال در هدر و حذف پارامترهای اضافی کوئری استرینگ از آدرس، مطمئن‌ترین آدرس مرجع را به گوگل معرفی کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * پاکسازی آدرس کانونیکال از پارامترهای اضافه و تضمین آدرس مرجع یکتا
 */
function bisco_custom_canonical_url() {
    if ( is_singular() ) {
        $canonical_url = get_permalink();
        echo '<link rel="canonical" href="' . esc_url( $canonical_url ) . '" />' . "
";
    } elseif ( is_home() || is_front_page() ) {
        echo '<link rel="canonical" href="' . esc_url( home_url( '/' ) ) . '" />' . "
";
    }
}

// حذف کانونیکال پیش‌فرض وردپرس و جایگزینی با نسخه استاندارد
remove_action( 'wp_head', 'rel_canonical' );
add_action( 'wp_head', 'bisco_custom_canonical_url', 5 );
۴۶۱ 1405/06/29
PHP سئو تکنیکال (Technical SEO) Filter Hook (wp_robots)

تنظیم شرطی متاتگ‌های روبات‌ها در وردپرس (Conditional Meta Robots)

با فیلتر `wp_robots`، متاتگ `noindex,follow` را برای صفحات جستجو و صفحات آرشیو با شماره صفحه (paged) تنظیم کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * کنترل شرطی متاتگ‌های ایندکس ربات‌ها در صفحات مختلف
 */
function bisco_conditional_meta_robots( $robots ) {
    // اعمال noindex در صفحات نتایج جستجو
    if ( is_search() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    // اعمال noindex در آرشیو تاریخ (سالانه/ماهانه)
    if ( is_date() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    // اعمال noindex روی صفحات شماره‌دار (صفحه ۲ به بعد آرشیوها) جهت تمرکز اعتبار
    if ( is_paged() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
}
add_filter( 'wp_robots', 'bisco_conditional_meta_robots' );
۶۸۰ 1405/06/29
PHP سئو تکنیکال (Technical SEO) Filter Hook (robots_txt)

شخصی‌سازی فایل robots.txt مجازی در وردپرس (Customize robots.txt)

با فیلتر `robots_txt` متن استاندارد شامل مسدودسازی `/wp-admin/`، `/cart/` و معرفی نقشه سایت را تزریق کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * شخصی‌سازی دستورات فایل مجازی robots.txt در وردپرس
 */
function bisco_custom_robots_txt( $output, $public ) {
    // اگر سایت در حالت عمومی (نمایه برای موتورهای جستجو) قرار دارد
    if ( '1' === $public ) {
        $rules  = "User-agent: *
";
        $rules .= "Disallow: /wp-admin/
";
        $rules .= "Allow: /wp-admin/admin-ajax.php
";
        $rules .= "Disallow: /cart/
";
        $rules .= "Disallow: /checkout/
";
        $rules .= "Disallow: /my-account/
";
        $rules .= "Disallow: /*?add-to-cart=*
";
        $rules .= "Disallow: /author/
";
        $rules .= "
";
        $rules .= "Sitemap: " . esc_url( home_url( '/wp-sitemap.xml' ) ) . "
";

        return $rules;
    }

    return $output;
}
add_filter( 'robots_txt', 'bisco_custom_robots_txt', 10, 2 );
۵۰۸ 1405/06/29

حذف تاکسونومی سفارشی از نقشه سایت وردپرس (Remove Taxonomy from Sitemap)

با فیلتر `wp_sitemaps_taxonomies`، تاکسونومی‌های مورد نظر (مثلاً post_tag یا ویژگی‌های ووکامرس) را از sitemap حذف نمایید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * حذف برچسب‌ها و تاکسونومی‌های دلخواه از نقشه سایت بومی وردپرس
 */
function bisco_remove_taxonomies_from_sitemap( $taxonomies ) {
    // حذف برچسب‌های پیش‌فرض نوشته‌ها
    unset( $taxonomies['post_tag'] );

    // حذف فرمت‌های نوشته
    unset( $taxonomies['post_format'] );

    return $taxonomies;
}
add_filter( 'wp_sitemaps_taxonomies', 'bisco_remove_taxonomies_from_sitemap' );
۴۵۴ 1405/06/29

حذف پست‌تایپ سفارشی از نقشه سایت وردپرس (Remove Post Type from Sitemap)

با فیلتر `wp_sitemaps_post_types` نام پست‌تایپ مورد نظر را از آرایه نقشه‌های سایت وردپرس حذف کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * حذف پست‌تایپ‌های خاص از نقشه سایت بومی وردپرس (wp-sitemap.xml)
 */
function bisco_remove_cpt_from_sitemap( $post_types ) {
    // حذف پست‌تایپ اسلایدر و پاپ‌آپ‌ها از نقشه سایت
    unset( $post_types['slider'] );
    unset( $post_types['popup_builder'] );
    unset( $post_types['team_member'] );

    return $post_types;
}
add_filter( 'wp_sitemaps_post_types', 'bisco_remove_cpt_from_sitemap' );
۲۹۲ 1405/06/29
PHP وردپرس (WordPress) Filter Hook (the_content)

افزودن محتوا و اعلان خودکار به ابتدای مقالات وردپرس (Content Before Post)

با فیلتر `the_content` باکس اخطار یا اعلان را قبل از `$content` الحاق کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * افزودن کادر اطلاع‌رسانی مهم به بالاتر از متن اصلی تمام مقالات
 */
function bisco_prepend_content_before_post( $content ) {
    if ( is_single() && is_main_query() && 'post' === get_post_type() ) {
        $notice_box = '
        <div class="bisco-before-post-notice" style="background:#fffbeb; border-right:4px solid #f59e0b; padding:12px 16px; margin-bottom:24px; border-radius:4px;">
            <p style="margin:0; font-size:14px; color:#92400e;">
                <strong>نکته فنی:</strong> کدهای این مقاله برای PHP 8.2 و بالاتر و آخرین نسخه پایدار وردپرس بازبینی و تایید شده‌اند.
            </p>
        </div>';

        $content = $notice_box . $content;
    }

    return $content;
}
add_filter( 'the_content', 'bisco_prepend_content_before_post' );
۷۳۶ 1405/06/29
PHP وردپرس (WordPress) Filter Hook (the_content)

افزودن محتوا و بنر خودکار به انتهای مقالات وردپرس (Content After Post)

با فیلتر `the_content` و بررسی شرط `is_single()`، محتوای دلخواه را به متغیر `$content` الصاق (Append) کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * افزودن باکس امضا و دعوت به عضویت در خبرنامه به انتهای مقالات
 */
function bisco_append_content_after_post( $content ) {
    // تنها در صفحه تکی نوشته‌های وبلاگ و درون لوپ اصلی اجرا شود
    if ( is_single() && is_main_query() && 'post' === get_post_type() ) {
        $custom_box = '
        <div class="bisco-after-post-cta" style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:20px; margin-top:30px;">
            <h4 style="margin-top:0; color:#1e293b;">آیا این مطلب برای شما مفید بود؟</h4>
            <p style="color:#64748b; font-size:14px;">برای دریافت آخرین ترفندهای توسعه وب و کدهای کاربردی، در خبرنامه ما عضو شوید.</p>
            <a href="/newsletter" style="display:inline-block; background:#6366f1; color:#fff; padding:8px 18px; border-radius:6px; text-decoration:none; font-weight:bold;">عضویت رایگان</a>
        </div>';

        $content .= $custom_box;
    }

    return $content;
}
add_filter( 'the_content', 'bisco_append_content_after_post' );
۴۴۷ 1405/06/29
PHP وردپرس (WordPress) REST API Controller

ساخت اندپوینت اختصاصی در REST API وردپرس (Custom REST API Endpoint)

با تابع `register_rest_route` در اکشن `rest_api_init` یک اندپوینت GET با اعتبارسنجی ورودی‌ها بسازید.

متوسط (Medium Risk) پیشرفته (Hard)
<?php
/**
 * ایجاد اندپوینت اختصاصی در REST API برای دریافت خلاصه آمار سایت
 * آدرس اندپوینت: /wp-json/bisco/v1/stats
 */
function bisco_register_custom_rest_route() {
    register_rest_route( 'bisco/v1', '/stats', array(
        'methods'             => WP_REST_Server::READABLE, // متد GET
        'callback'            => 'bisco_get_site_stats_callback',
        'permission_callback' => '__return_true', // اجازه دسترسی عمومی
    ) );
}
add_action( 'rest_api_init', 'bisco_register_custom_rest_route' );

function bisco_get_site_stats_callback( WP_REST_Request $request ) {
    $published_posts = wp_count_posts( 'post' )->publish;
    $comments_count  = wp_count_comments()->approved;

    $response = array(
        'status'          => 'success',
        'published_posts' => (int) $published_posts,
        'total_comments'  => (int) $comments_count,
        'timestamp'       => current_time( 'timestamp' ),
    );

    return new WP_REST_Response( $response, 200 );
}
۳۶۴ 1405/06/29
PHP امنیت و هاردنینگ (Security) Filter Hook (rest_authentication_errors)

محدود کردن دسترسی به REST API برای کاربران مهمان در وردپرس (Restrict REST API)

با فیلتر `rest_authentication_errors`، کاربرانی که لاگین نکرده‌اند را با خطای ۴۰۱ یا WP_Error مسدود کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * محدودسازی دسترسی به REST API تنها برای کاربران وارد شده به سایت
 */
function bisco_restrict_rest_api_to_logged_in_users( $access ) {
    // در صورت وجود خطای قبلی، همان خطا بازگردانده شود
    if ( is_wp_error( $access ) ) {
        return $access;
    }

    // اگر کاربر وارد نشده بود، دسترسی مسدود گردد
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'rest_cannot_access',
            'دسترسی به رابط برنامه‌نویسی تنها برای کاربران احراز هویت شده مجاز است.',
            array( 'status' => rest_authorization_required_code() )
        );
    }

    return $access;
}
add_filter( 'rest_authentication_errors', 'bisco_restrict_rest_api_to_logged_in_users' );
۴۷۰ 1405/06/29
PHP وردپرس (WordPress) Admin Column Helper

نمایش شناسه نوشته (Post ID) در جدول مدیریت وردپرس (Show Post ID)

با هوک‌های `manage_posts_columns` و `manage_pages_columns` یک ستون اختصاصی با عرض ثابت برای Post ID ایجاد کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * نمایش ستون شناسه عددی نوشته‌ها و برگه‌ها در پیشخوان وردپرس
 */
function bisco_add_id_column( $columns ) {
    $columns['bisco_post_id'] = 'شناسه (ID)';
    return $columns;
}
add_filter( 'manage_posts_columns', 'bisco_add_id_column' );
add_filter( 'manage_pages_columns', 'bisco_add_id_column' );

function bisco_render_id_column( $column, $post_id ) {
    if ( 'bisco_post_id' === $column ) {
        echo '<code style="font-family:monospace; background:#f0f0f1; padding:2px 6px; border-radius:4px; font-weight:600;">' . esc_html( $post_id ) . '</code>';
    }
}
add_action( 'manage_posts_custom_column', 'bisco_render_id_column', 10, 2 );
add_action( 'manage_pages_custom_column', 'bisco_render_id_column', 10, 2 );
۴۰۱ 1405/06/29
PHP وردپرس (WordPress) Admin Column Filter & Action

افزودن ستون‌های سفارشی به جدول مدیریت وردپرس (Custom Admin Columns)

با فیلتر `manage_posts_columns` ستون را تعریف کرده و با اکشن `manage_posts_custom_column` محتوای تصویر شاخص را در آن چاپ کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * افزودن ستون تصویر شاخص و تعداد بازدید به جدول نوشته‌های پیشخوان ادمین
 */
function bisco_add_admin_columns( $columns ) {
    $new_columns = array();
    foreach ( $columns as $key => $title ) {
        $new_columns[ $key ] = $title;
        // قرار دادن ستون تصویر دقیقاً بعد از عنوان
        if ( 'title' === $key ) {
            $new_columns['bisco_thumb'] = 'تصویر شاخص';
            $new_columns['bisco_views'] = 'تعداد بازدید';
        }
    }
    return $new_columns;
}
add_filter( 'manage_posts_columns', 'bisco_add_admin_columns' );

// پر کردن داده‌های ستون‌های سفارشی
function bisco_render_admin_columns( $column, $post_id ) {
    if ( 'bisco_thumb' === $column ) {
        if ( has_post_thumbnail( $post_id ) ) {
            echo get_the_post_thumbnail( $post_id, array( 50, 50 ), array( 'style' => 'border-radius:6px; object-fit:cover;' ) );
        } else {
            echo '<span style="color:#999;">—</span>';
        }
    }

    if ( 'bisco_views' === $column ) {
        $views = (int) get_post_meta( $post_id, 'bisco_post_views_count', true );
        echo esc_html( number_format_i18n( $views ) );
    }
}
add_action( 'manage_posts_custom_column', 'bisco_render_admin_columns', 10, 2 );
۵۷۸ 1405/06/29
PHP وردپرس (WordPress) Post Meta Helper

شمارنده تعداد بازدید پست‌ها بدون افزونه در وردپرس (Post View Counter)

با تابع زیر در اکشن `wp_head` بازدید ثبت شده و با `[post_views]` تعداد بازدیدها نمایش داده می‌شود.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * سیستم سبک ثبت و نمایش تعداد بازدید پست در متای وردپرس
 */
function bisco_track_post_views() {
    if ( ! is_single() ) {
        return;
    }

    global $post;
    if ( ! isset( $post->ID ) ) {
        return;
    }

    // عدم شمارش بازدید ربات‌ها یا پیش‌نمایش‌ها
    if ( is_preview() || is_robots() ) {
        return;
    }

    $post_id = $post->ID;
    $count_key = 'bisco_post_views_count';
    $count = (int) get_post_meta( $post_id, $count_key, true );

    if ( empty( $count ) ) {
        delete_post_meta( $post_id, $count_key );
        add_post_meta( $post_id, $count_key, 1 );
    } else {
        $count++;
        update_post_meta( $post_id, $count_key, $count );
    }
}
add_action( 'wp_head', 'bisco_track_post_views' );

// شورت‌کد نمایش بازدید
add_shortcode( 'post_views', function() {
    $post_id = get_the_ID();
    $count = (int) get_post_meta( $post_id, 'bisco_post_views_count', true );
    return '<span class="bisco-post-views">بازدید: ' . number_format_i18n( $count ) . '</span>';
} );
۵۸۲ 1405/06/29

سبد خرید شما

0 افزونه

سبد خرید شما خالی است

هنوز محصولی را به سبد خرید اضافه نکرده‌اید. می‌توانید از افزونه‌های اختصاصی ما دیدن فرمایید.

مشاهده فروشگاه افزونه‌ها

ثبت درخواست مشاوره

با تکمیل فرم زیر، کارشناسان فنی بیسکو وب در سریع‌ترین زمان ممکن با شما تماس می‌گیرند.

مشاور
پشتیبانی و مشاوره تخصصی
پاسخگویی سریع کارشناسان
09903336117