راکت

کد php در ودرپرس

14 پاسخ

سلام احترام و خسته نباشید خدمت برنامه نویس عزیز ارجمند ؛ من یه سوال داشتم ؛ ممنون میشم اگه اطلاعی دارید راهنمایی بفرمایید
فولدرproje1 آپلود کردم داخل پوشه public-html ؛ و باید بگم که یک فولدری که حاوی فایل های assest - db - src و چندین فایل php

و در صفحه وردپرسی برگه جدید ساختم به اسم proje1 ؛ که وقتی این صفحه سرچ شد ؛ محتوای این پوشه رو نمایش بده
example.com/proje1/

و با کد نویسی داخل function.php اینکارو انجام دادم ؛ این پیام نشان میده

This page isn’t workingiranaihub.ir is currently unable to handle this
request. HTTP ERROR 500

که گفتم شاید از افزونه ها باشه ؛ غیر فعال کردم ؛ ولی تاثیر نداشت

function custom_template_redirect() {
    if (is_page('proje1')) { // تعیین صفحه مورد نظر
        $folder_path = get_home_path() . 'proje1'; // مسیر فولدر مورد نظر
        $file_content = file_get_contents($folder_path . '/index.php'); // محتوای فایل مورد نظر

        // نمایش محتوای فایل
        echo '' . htmlentities($file_content) . '';
        exit;
    }
}
add_action('template_redirect', 'custom_template_redirect');

publichtml/wp-content/themes/ewebot یکبار هم اینجا اپلود کردم ؛ اینبار ؛ یک صفحه سفید نمایش میده

در لوکال هاست تست میکنم بدون مشکل به من نمایش میده ؛ ولی وقتی در هاست می برم ؛ فقط یک صفحه سفید نمایش میده

ثبت پرسش جدید

پاسخ‌ها

14
مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

سلام

برخی از اقداماتی که می‌توانی انجام بدی:

  1. استفاده از error_log:
    برای رفع این خطاها، بهتر ه از error_log استفاده کنی تا بتوانی خطاهای PHP را بررسی کرده و علت این مشکل را بهتر پیدا کنی. برای این کار کد زیر را به فایل wp-config.php اضافه کن:

    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
  2. تنظیمات مجوزها:
    مطمعن شو که تمام فایل‌ها و دایرکتوری‌ها پرمیشن های صحیحی دارند.

  3. استفاده از require یا include به جای file_get_contents:
    به جای استفاده از file_get_contents برای خواندن محتوای فایل PHP، از require یا include استفاده کن. مثلاً:

    if (is_page('proje1')) {
       $folder_path = get_home_path() . 'proje1';
       require $folder_path . '/index.php';
       exit;
    }
  4. مسیر صحیح:
    مطمئن شو که مسیر فایل‌ها و دایرکتوری‌ها به درستی تنظیم شده باشه.

اگر کماکان مشکل داشتی ارور ها را به اشتراک بذار تا بهتر بتونم کمک کنم

موفق باشی

@mmirabi
سلام بسیار ممنونم از وقتی که گذاشتید
نه متاسفانه جواب نداد
پوشه پروژه رو بهتر داخل تم تعریف کنم publichtml/wp-content/themes/ewebot
یا همین داخل public-html

شاید پاسخ شما همین‌جا باشد

مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

با توجه به اطلاعات وب‌سایت شما اگر می‌خوای یک صفحه ویژه با محتوایی که در پوشه proje1 قرار دارد را نمایش بدی، بهتره که این پوشه را داخل دایرکتوری تم (theme) قرار بدی . در این حالت مسیر دقیق فایل index.php :

publichtml/wp-content/themes/ewebot/proje1/index.php

می‌تونی از کد زیر برای نمایش محتوای استفاده کنی:

function custom_template_redirect() {
    if (is_page('proje1')) {
        $folder_path = get_template_directory() . '/proje1'; // مسیر فولدر مورد نظر داخل تم
        $file_content = file_get_contents($folder_path . '/index.php');

        // نمایش محتوای فایل
        echo '' . htmlentities($file_content) . '';
        exit;
    }
}
add_action('template_redirect', 'custom_template_redirect');

در این کد، get_template_directory() از جایگزینی بهتری برای get_home_path() برای گرفتن مسیر تم استفاده می‌کند.

اگر مشکل حل نشد لطفا لاگ ها رو هم بفرس ببینم مشکل کجاس

موفق باشی

@mmirabi
نه پاسخی نداد متاسفانه ؛ و فقط کد های داخل index را به من نمایش می داد
باید اشاره کنم که فولدر project حاوی فایل های assest - db - src و چندین فایل php هست
ولی الان فقط index .php نشون داد و فقط کد های داخل ایندکس

مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

محتوایی که می خوایید نمایش بده کدهای html هست؟

مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

@ossvahid
وحید جان شاید شما بهتر بتونید کمکشون کنید.

@mmirabi جناب آقای میرابی عزیز ؛ خیلی ممنونم از وقتی که گذاشتید ؛ بسیار تشکر

مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

خواهش می کنم اگر مشکل حل نشد باز هم بگید من بتونم کاری کنم خوشحال می شم

vahid
vahid
@vahid1379

تخصص: توسعه دهنده وردپرس

سلام ارادت
اگه میخای ی صفحه بسازی باید از page template
استفاده کنی
ی فایل بساز مثلا
x.php
داخلش بنویس

/*Template Name: my Custom page template*/

الان ی صفحه ساختی باید از طریق تابع wp_insert_post بیایی و ی برای این صفحه بسازی فک کنم باید داخل هوک admin_init صداش بزنی
یا میتونی بری داخل همون قسمت برگه ها خودت ی برگه بسازی page template رو بزاری رو اون اسم صفحه ایی که ساختی
الان شما اون فایل x.php بود ساخته بودی هرجا قرارش بدی کار میکنه و میتونی کلا از اول کدنویسیش کنی یچیزی خارج از کدهای قالب یا میتونی گت هدر و فوتر بزنی و...
فقط اون تابع wp_insert_post ی ارگومان داره بنام اگه اشتباه نکنم page template باشه اسمشم اینو مقدارش قرار بده با آدرس فولدر یا صفحه ایی که فایل x.php رو ساختی

@ossvahid
سلام درود خدمت شما ؛ خیلی ممنونم از وقتی که گذاشتید و پیامم مطالعه کردید و پاسخ دادید
من تقریبا به این صورت اقدام کرده بودم ولی پاسخی نداد ؛ اگه اماکانش هست ممنون میشم امشب در حد چند دقیقه مزاحمتون بشم وچند دقیقه ای داخل گوگل میت وقتتون بگیرم
این ایمیل م هست ؛ اگه انلاین شدید لطف کنید پیام بدید اگه فرصت داشتید برای امشب
alireza.daneshmayeh80@gmail.com

 تصویر

@mmirabi
سلام خسته نباشید ؛ آقای میرابی عذر زحمات ما
جناب میرابی ؛ من به هاست که دارم پیام دادم و نظرشون این بود
توی ماه دومنین بار دارم تغیر هاست میدم ؛ اگه اینبار هم انجام بدم ؛ میشه سومین بار
بار اول مدل هاست اقتصالی گرفتم خوب نبود ؛ تغییر دادم به هاست وردپرسی ؛ حالا هم میگن تغییر بده به المان
بنظرتون جواب میده یا برای بازار گرمی دارن این حرف هارو می زنن

مهدی میرابی
مهدی میرابی
@mmirabi

تخصص: full-stack developer

خواهش می کنم
شما از اینجا در یک هاست رایگان کدهات رو تست کن اگر جواب گرفتی بعد اقدام کن به تغییر هاست بکن
موفق باشید

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

درود خوبی...
یه ساب دامین بساز و پوشه با محتوای آن آپلود کن.

@Raymond درود بر شما ؛ بسیار ممنونم از مشارکتی که داشتید ؛ نکته ی خوبی بود ؛ ممنونم این رو تست نکرده بودم

@mmirabi ممنونم آقای میرابی باید اینم باید تست کنم

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام