Monica

سوال | متغییرها در فانکشنز

9 پست در این موضوع قرار دارد

سلام

خداروشکر با حضور دوباره اساتید این انجمن دوباره جون گرفت و اساتید ( @lord_viper و @Parsa و بقیه دوستان )پاسخ میدن...

من با کد زیر اومدم ی شورتکد برای ویدیوهام ساختم ( میخوام از پلیر خودم استفاده کنم) و خیلی خوب کار میکنه

حالا میخوام در head سایتم meta ویدیو رو بذارم و نیاز دارم مقدار src در کد زیر رو تحویل بگیرم ولی نمیده...

چطوری میتونم وقتی در نوشته src مقدار گرفت من مقدارش رو در head چاپ کنم؟ هر جوری اکو کردم نشد...

اگر نشدنی هست ، چطوری میتونم مقدار src رو با هک دیگه ای چاپ کنم؟ 

function html5_video($atts, $content = null) {

        extract(shortcode_atts(array(

                "width" => '',

                "height" => '',

                "poster" => '',

                "src" => ''
        ), $atts));
       
              $output = '<video id="my-video" class="video-js vjs-big-play-centered" controls preload="auto" width="'.$width.'" height="'.$height.'" poster="'.$poster.'" data-setup="{}">
                <source src="'.$src.'" type="video/mp4">
                <p class="vjs-no-js">
                  اخطار! مرورگر شما قدیمی است یا جاوااسکریپت در مرورگر شما بسته است ، فعال کنید
                  <a href="http://videojs.com/html5-video-support/" target="_blank">پشتیبانی VIDEO JS</a>
    </p></video>';
                       return $output;

}

add_shortcode('video5', 'html5_video');

 

0

به اشتراک گذاری این پست


لینک به پست

سلام. این لینک رو بررسی کنید:

http://stackoverflow.com/questions/6290810/return-only-the-shortcode-from-post

پاسخ دومی که داده شده به نظر بهتره.

ولی این کار مثل دوباره کاری هست. به نظرم بهتره از متاباکس استفاده کنید برای ویدئوها. چون با این روش اگر چند ویدئو توی صفحه باشه همیشه اولی رو احتمالا انتخاب میکنه و ویرایشش در اینده هم یکمی سخت میشه براتون.

موفق باشید.

2

به اشتراک گذاری این پست


لینک به پست
در 10 دقیقه قبل، فرحان گفته است :

سلام. این لینک رو بررسی کنید:

http://stackoverflow.com/questions/6290810/return-only-the-shortcode-from-post

پاسخ دومی که داده شده به نظر بهتره.

ولی این کار مثل دوباره کاری هست. به نظرم بهتره از متاباکس استفاده کنید برای ویدئوها. چون با این روش اگر چند ویدئو توی صفحه باشه همیشه اولی رو احتمالا انتخاب میکنه و ویرایشش در اینده هم یکمی سخت میشه براتون.

موفق باشید.

ممنون

نه ، سوال من درباره برگردوندن مقدار src در کد بالا هست ... لینک شما بخشی از شورتکد رو فیلتر میکنه برای یکبار ،، اونوقت کد اصلی از کار میوفته...

0

به اشتراک گذاری این پست


لینک به پست
در 1 ساعت قبل، nazanin123 گفته است :

ممنون

نه ، سوال من درباره برگردوندن مقدار src در کد بالا هست ... لینک شما بخشی از شورتکد رو فیلتر میکنه برای یکبار ،، اونوقت کد اصلی از کار میوفته...

 

خوب ایده یکی هست یعنی راهی ندارید جز اینکه با regex شورت کد رو از توی متن مطلب قبل از ارسال شدنش به خروجی تشخیص بدید و استخراج کنید. حالا توی اون لینک خواسته جایگزین کنه شما جایگزین نکنید، فقط استخراج کنید.

مگر اینکه کلا روشتونو عوض کنید.

امیدوارم متوجه منظورم شده باشید.

موفق باشید.

2

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در 2 ساعت قبل، فرحان گفته است :

 

خوب ایده یکی هست یعنی راهی ندارید جز اینکه با regex شورت کد رو از توی متن مطلب قبل از ارسال شدنش به خروجی تشخیص بدید و استخراج کنید. حالا توی اون لینک خواسته جایگزین کنه شما جایگزین نکنید، فقط استخراج کنید.

مگر اینکه کلا روشتونو عوض کنید.

امیدوارم متوجه منظورم شده باشید.

موفق باشید.

بله ، متوجه منظور شما شدم ولی این تابع تعریف شده و باید خروجی بده ، توو کدهای بالا من ی جایی اشتباه کردم که نمیتونم ازش توو جاهای دیگه خروجی بگیرم ...

سایت خبری هست و به اندازه کافی مصرف منابع بالا هست ، regex هم فشار رو بالاتر میبره... 

 

ویرایش شده در توسط nazanin123
0

به اشتراک گذاری این پست


لینک به پست
در 12 ساعت قبل، nazanin123 گفته است :

بله ، متوجه منظور شما شدم ولی این تابع تعریف شده و باید خروجی بده ، توو کدهای بالا من ی جایی اشتباه کردم که نمیتونم ازش توو جاهای دیگه خروجی بگیرم ...

سایت خبری هست و به اندازه کافی مصرف منابع بالا هست ، regex هم فشار رو بالاتر میبره... 

 

 

متوجه نمیشم منظورتون از اینکه می خواید این تابع رو جای دیگه استفاده کنید چی هست اما در کل، وقتی وردپرس میخواد شورت کد شما رو پردازش کنه از قسمت پردازش هدر سایت گذشته. در نتیجه توی هدر سایت باید خودتون مستقیم متن مطلب رو فیلتر کنید و سورس رو بردارید. حتی اگر هم سورس رو برای جای دیگه ای مثلا توی فوتر می خواستید، باز هم کار درستی نیست که بیاید مثلا حین پردازش این تابع سورس رو جایی ذخیره کنید که در آینده استفاده کنید.

خود وردپرس هم برای پردازش شورت کدها از regex استفاده میکنه.

راهی که من به نظرم میرسه برای حل مشکل لود سایت اینه که با هوک به زمان ذخیره شدن مطلب سورس ها رو از ویدئوهای موجود توی صفحه یا اونی که مد نظرتونه استخراج کنید و توی یک متا ذخیره کنید. و توی هدر سایت هم میتونید اون متا رو استفاده کنید.
 

یا اینکه همون که قبلا گفتم کلا به جای شورت کد از متاباکس استفاده کنید.

هر روشی رو رفتید لطفا اینجا هم اطلاع بدید.

موفق باشید.

1

به اشتراک گذاری این پست


لینک به پست

سلام

با JQuery خیلی راحت می تونید این کار رو انجام بدید. روی لود صفحه مقدار src رو بگیرید و داخل یه option ذخیره کنید. مقدار option رو هم داخل src تابع بزارید.

دقیقا چیزی که می خواید خروجی میده. برای ذخیره مقدار داخل option هم می تونید دیتا رو post کنید

1

به اشتراک گذاری این پست


لینک به پست

با سلام شما یا باید از جی کوئری استفاده کنید مثل کد زیر

<script type="text/javascript"> 
     $(document).ready(function() {
         $("head").append("<meta name=viewport content=width=400, initial-scale=0.45, minimum-    scale=0.45/><link rel=apple-touch-icon href=/images/customIcon.png/><meta name=apple-mobile-web-app-capable content=no /><meta name=apple-mobile-web-app-status-bar-style content=black-translucent /><link rel=apple-touch-icon-precomposed href=/images/customIcon.png/> ");
    });
</script>

یا مثل وردپرس شورت کدها رو پیدا کنید و در هدر سایت جاگذاری کنید

 

 

function _get_shortcodes() {

global $post;
	if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'video5') ) {
        $pattern = get_shortcode_regex();
        preg_match_all('/'.$pattern.'/uis', $post->post_content, $matches);
    
        for ( $i=0; $i < count($matches); $i++ ) {
    
            if ( isset( $matches[0][$i] ) and $matches[0][$i] == 'video5' ) {
                $attribureStr = str_replace (" ", "&", trim ($matches[1][$i]));
                $attribureStr = str_replace ('"', '', $attribureStr);
                $attributes   = wp_parse_args ($attribureStr, $defaults);
            }
        }
    }
}
add_action('wp_head','_get_shortcodes');

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

5

به اشتراک گذاری این پست


لینک به پست
در در 12/24/2016 at 11:23، lord_viper گفته است :

با سلام شما یا باید از جی کوئری استفاده کنید مثل کد زیر


<script type="text/javascript"> 
     $(document).ready(function() {
         $("head").append("<meta name=viewport content=width=400, initial-scale=0.45, minimum-    scale=0.45/><link rel=apple-touch-icon href=/images/customIcon.png/><meta name=apple-mobile-web-app-capable content=no /><meta name=apple-mobile-web-app-status-bar-style content=black-translucent /><link rel=apple-touch-icon-precomposed href=/images/customIcon.png/> ");
    });
</script>

یا مثل وردپرس شورت کدها رو پیدا کنید و در هدر سایت جاگذاری کنید

 

 


function _get_shortcodes() {

global $post;
	if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'video5') ) {
        $pattern = get_shortcode_regex();
        preg_match_all('/'.$pattern.'/uis', $post->post_content, $matches);
    
        for ( $i=0; $i < count($matches); $i++ ) {
    
            if ( isset( $matches[0][$i] ) and $matches[0][$i] == 'video5' ) {
                $attribureStr = str_replace (" ", "&", trim ($matches[1][$i]));
                $attribureStr = str_replace ('"', '', $attribureStr);
                $attributes   = wp_parse_args ($attribureStr, $defaults);
            }
        }
    }
}
add_action('wp_head','_get_shortcodes');

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

سپاس فراوان، عاااالی ... با زمینه دلخواه از src خودش گرفتم ... از کد شما استفاده کردم

 

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری