shima26 18 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 (ویرایش شده) با سلام!قصد دارم کل نوشته های داخل یک فایل php رو توی یک متغیر بگیرم تا بعد از اون متغییر توی شورتکد استفاده کنماین محتویات فایل php مورد نظرهممنون میشم راهنمایی بفرمایید<?php/if ( ! defined( 'ABSPATH' ) ) {exit; // Exit if accessed directly}global $product, $woocommerce_loop;if ( empty( $woocommerce_loop['loop'] ) ) {$woocommerce_loop['loop'] = 0;}if ( empty( $woocommerce_loop['columns'] ) ) {$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );}// Ensure visibilityif ( ! $product || ! $product->is_visible() ) {return;}// Increase loop count$woocommerce_loop['loop']++;// Extra post classes$classes = array();/** WPEX CLASSES **/$classes[] = 'col';$classes[] = wpex_grid_class( $woocommerce_loop['columns'] );/** WPEX CLASSES **/// First column classif ( 0 == ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] || 1 == $woocommerce_loop['columns'] ) {$classes[] = 'first';}// Last column classif ( 0 == $woocommerce_loop['loop'] % $woocommerce_loop['columns'] ) {$classes[] = 'last';}// Get WooCommerce entry style from theme options$wpex_woo_style = wpex_option( 'woo_entry_style' );if ( 'two' == $wpex_woo_style ) {// Product Classes$classes = array_merge( $classes, array( 'product-entry', 'product-entry-style-two' ) ); ?><li <?php post_class( $classes ); ?>><?php do_action( 'woocommerce_before_shop_loop_item' ); ?><div class="product-entry-media clr"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="product-entry-thumb"><?php/** * woocommerce_before_shop_loop_item_title hook * * @hooked woocommerce_show_product_loop_sale_flash - 10 * @hooked woocommerce_template_loop_product_thumbnail - 10 */do_action( 'woocommerce_before_shop_loop_item_title' ); ?><?php if ( !wpex_woo_product_instock() ) { ?> <div class="product-entry-out-of-stock-badge"> <?php _e( 'Out of Stock', 'wpex' ); ?> </div><?php } ?></a><?php// Display ratingif ( wpex_option( 'woo_entry_rating' ) && 'no' != get_option( 'woocommerce_enable_review_rating' ) && $product->get_rating_html() ) { ?><div class="product-entry-rating clr"> <?php wc_get_template( 'loop/rating.php' ); ?></div><!-- .product-entry-rating --><?php } ?></div><div class="product-entry-details clr"> <?php// Display Priceif ( $product->get_price_html() ) { ?><div class="product-entry-price"> <span class="product-entry-price"><?php echo $product->get_price_html(); ?></span></div><!-- .product-entry-price --><?php } ?><h2 class="product-entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( the_title_attribute( 'echo=0' ) ); ?>"> <?php the_title(); ?></a></h2><!-- .product-entry-title --></div><!-- .product-entry-details --></li><?php/******************************************************* Default Woo Style*****************************************************/} else {$classes = array_merge( $classes, array( 'product-entry' ) ); ?><li <?php post_class( $classes ); ?>><?php do_action( 'woocommerce_before_shop_loop_item' ); ?><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="product-entry-thumb"><?php/*** woocommerce_before_shop_loop_item_title hook** @hooked woocommerce_show_product_loop_sale_flash - 10* @hooked woocommerce_template_loop_product_thumbnail - 10*/do_action( 'woocommerce_before_shop_loop_item_title' ); ?></a><div class="product-entry-details clr"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?><h2 class="product-entry-title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></h2><?php/*** woocommerce_after_shop_loop_item_title hook** @hooked woocommerce_template_loop_price - 10*///do_action( 'woocommerce_after_shop_loop_item_title' ); ?> <?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?></div><!-- .product-entry-details --></li><?php } ?> ویرایش شده دی 93 توسط shima26 نقل قول لینک به ارسال
فرحان 997 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 سلام. نحوه فکر کردنتون به مساله غلط هست. باید بگید می خوام خروجی یک فایل php رو بگیرم و با یک شورت کد چاپش کنم. برای این کار باید از تابع file_get_contents استفاده کنید.اما چون فایلتون مربوط به وردپرس هست و نیاز به اجرای وردپرس دارید تا توابع به کار برده شده قابل استفاده باشن باید کوئری ور ایجاد کنید و به template redirect هوک بزنید و بگید اگر این متغییر با فلان مقدار توی url بود برو به این فایل و بعد از چاپ خروجی با تابع die یا exit خارج بشید.ممکنه راه های دیگه هم باشه ولی در کل باید خود وردپرس رو اجرا کنید.ویرایش : برای اینکه بهتر متوجه بشید اینطوری بگم که اول کوئری ور تعریف می کنید ، بعد با یک تابع دیگه می گید که اگر اون متغییر توی url بود این فایل رو اینکلود کن (با هوک به template redirect این تابع رو اجرا می کنید.) حالا ما میدونیم اگر آدرس سایت وردپرسی رو با این url و اون متغییر توی آدرس وارد کنید محتوای فایل مورد نظرمون چاپ میشه . پس میایم به تابع file_get_contents آدرس سایت رو با کوئری سترینگ تعریف شدمون میفرستیم و نتیجه رو توی متغییر ذخیره می کنیم.برای اضافه کردن وئری ور هم جستجو کنید توی گوگل پیدا می کنید.موفق باشید. 3 نقل قول لینک به ارسال
shima26 18 ارسال شده در دی 93 مالک گزارش بازنشر ارسال شده در دی 93 ممنون مفید بود نقل قول لینک به ارسال
Mobin 1669 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 اگه درست متوجه شده باشمشما با استفاده از تابع زیر استفاده کنیداین تابع خروجی یونیت شما رو (فایلی که اینکلاد کردین) رو برمیگردونه public function load_unit($path) { ob_start(); include_once ($path); return ob_get_clean(); } 1 نقل قول لینک به ارسال
فرحان 997 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 سلام. از ob استفاده نکنید بهتره چون توی بعضی هاستینگ ها غیرفعاله به خاطر مسائل امنیتی. منم یکبار استفاده کردم و دیدم پلاگین توی بعضی از سایت ها از کار می افته و خطا میده. بعد متوجه شدم توی خیلی از هاستینگ ها ob غیرفعاله. 1 نقل قول لینک به ارسال
Mobin 1669 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 تابع file_get_contents هم رو خیلی از هاستینگها بسته هست به دلیل مشکلات امنیتی(اولین باره در مورد توابع _ob چنین چیزی میشنوم)کلا هاستینگها عادت دارن که با هر تابعی که حال نمیکنن ببندنش خیلی از سیستمهای تمپلیت ,کش php میان از توابع ob استفاده میکننالبته مشکل امنیتی که در مورد ob_ ازش هاستینگها دم میزنن خیلی قدیمی هست و اینکهsecurity hole using these functions, but only on microsoft's serversو توصیه کرده بوده برای جلوگیری از این مشکل php نسخه 4.0.6 نصب کنن 1 نقل قول لینک به ارسال
فرحان 997 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 عجب. توی هاستینگ هایی که من کار کردم ندیدم file_get_contents بسته باشه . ولی توی یکی دو جا ob بسته بود(مثلا روی هاستینگ arvixe که لینوکس هم هست). اما توی اینترنت هم گفتن که بله بعضی جاها file_get_contents بسته هست.به هر حال راه دیگه هم برای استفاده نکردن از این دو تابع وجود داره . مثل لود با اجاکس . شاید کمی پیچیده تر باشن راه های دیگه اما اگر کسی در سطح عالی بخواد میتونه از اون راه ها استفاده کنه. 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .