Back-End php وردپرس

استفاده از توابع وردپرس در فایل های شخصی

0
Please log in or register to do it.

سلام عرض خسته نباشید فراوان? امید مقدسی ام و امروز اومدم ی نکته مفید دیگه رو بهتون بگم?

خب، درسته که من فرانت کارم ولی خب ی سری نکته های بک رو هم از هم تیمی هام یادمیگیرم??

خلاصه بریم سر اصل مطلب

خیلی وقت ها توی توسعه قالب یا افزونه وردپرس، لازمه که ما ی فایل php بسازیم و یک سری کار هامون رو داخلش انجام بدیم. اگه قبلا این کارو کرده باشید می فهمید که اگر ما خارج از چهارچوبی که وردپرس برامون مشخص کرده اگر بخوایم فایلی ایجاد کنیم، دیگه به توابع یا خارجیش (function) هاش دسترسی نداریم و نمیتونیم ازشون استفاه کنیم.

راه حل

خب حالا راه حل چیه؟ کافیه این تیکه کدی که میگم رو بذارین اول فایلتون.

require_once(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/wp-load.php');

خب حالا این کد چیکار میکنه؟ شما به اضافه کردن این کن عملا به وردپرس میگین که داخل این فایل هم لود شو. همین.

مثلا کجا کاربرد داره؟

خب مثلا من میخواستم لینک های دانلود که توسط افزونه edd هستن رو خودم دستی مخفی کنم که کاربر ها نتونن آدرس فایل ها یا نام فایل هارو بدست بیارن برای همین مجبور بودم ی فایل بسازم و با ی فرم آیدی محصول رو بفرستم به فایلم بعد داخل فایلم توسط توابع افزونه edd اطلاعات فایل رو بگیرم و توسط هدر خودم دانلودش کنم. کدشو میذارم که اگه خواستین استفاده کنید.

<?php
require_once(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/wp-load.php');
if (isset($_POST["secure_download"])) {
    $pid = $_POST["secure_download"];
    $isFree = edd_is_free_download($pid);
    if ($isFree) {
        $files = edd_get_download_files($pid, null)[1]['file'];
        $contentType = mime_content_type_me(pathinfo($files)['basename']);
        header('Content-Type: ' . $contentType);
        header('Content-Disposition: attachment; filename=' . uniqid() . '.' . pathinfo($files)['extension']);
        header('Pragma: no-cache');
        readfile($files);
    } else {
        echo 'شما دسترسی دانلود این فایل را ندارید.';
    }
} else {
    echo 'مشکلی در دانلود فایل بوجود آمده است.';
}

function mime_content_type_me($filename)
{

    $mime_types = array(

        'txt' => 'text/plain',
        'htm' => 'text/html',
        'html' => 'text/html',
        'php' => 'text/html',
        'css' => 'text/css',
        'js' => 'application/javascript',
        'json' => 'application/json',
        'xml' => 'application/xml',
        'swf' => 'application/x-shockwave-flash',
        'flv' => 'video/x-flv',

        // images
        'png' => 'image/png',
        'jpe' => 'image/jpeg',
        'jpeg' => 'image/jpeg',
        'jpg' => 'image/jpeg',
        'gif' => 'image/gif',
        'bmp' => 'image/bmp',
        'ico' => 'image/vnd.microsoft.icon',
        'tiff' => 'image/tiff',
        'tif' => 'image/tiff',
        'svg' => 'image/svg+xml',
        'svgz' => 'image/svg+xml',

        // archives
        'zip' => 'application/zip',
        'rar' => 'application/x-rar-compressed',
        'exe' => 'application/x-msdownload',
        'msi' => 'application/x-msdownload',
        'cab' => 'application/vnd.ms-cab-compressed',

        // audio/video
        'mp3' => 'audio/mpeg',
        'qt' => 'video/quicktime',
        'mov' => 'video/quicktime',

        // adobe
        'pdf' => 'application/pdf',
        'psd' => 'image/vnd.adobe.photoshop',
        'ai' => 'application/postscript',
        'eps' => 'application/postscript',
        'ps' => 'application/postscript',

        // ms office
        'doc' => 'application/msword',
        'rtf' => 'application/rtf',
        'xls' => 'application/vnd.ms-excel',
        'ppt' => 'application/vnd.ms-powerpoint',

        // open office
        'odt' => 'application/vnd.oasis.opendocument.text',
        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
    );

    $ext = strtolower(array_pop(explode('.', $filename)));
    if (array_key_exists($ext, $mime_types)) {
        return $mime_types[$ext];
    } elseif (function_exists('finfo_open')) {
        $finfo = finfo_open(FILEINFO_MIME);
        $mimetype = finfo_file($finfo, $filename);
        finfo_close($finfo);
        return $mimetype;
    } else {
        return 'application/octet-stream';
    }
}

امیدوارم که مفید باشه براتون❤️

معرفی و نصب نرم افزار VScode
9 ابزار CSS که باید در سال 1401 از آن استفاده کنید

Reactions

1

فعلا کسی لایک نکرده

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *