رفتن به مطلب

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


پست های پیشنهاد شده

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

من زمینه دلخواه زیر را تعریف کردم


<?php echo $dl; ?>

و با ادغام کردن اون با یک کد به کد زیر رسیدم


<?php echo do_shortcode('<?php echo $dl; ?>'); ?>

حالا من می خواهم در هر پست جای زمینه دلخواه dl یک شورت کد قرار بدهم و این شورت کد در قالب اجرا بشه ولی هر کاری می کنم شورت کد کار نمی کنه. لطفا راهنمایی بفرمایید

لینک به ارسال

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

لینک به ارسال

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

دوست عزیز این رو هرجای قالب که می خوای کپی کن بعد تو زمینه دلخوه اسم زمینرو بنویس . بعد به جای مقدار هم شورتکاتت رو بزار . تست کنید


<?php $mid_var = get_post_meta($post->ID, 'نام زمینه دخوله',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<li id="delkhah"><?php echo get_post_meta($post->ID, 'نام زمینه دخوله',true); ?></li> <?php endif; ?>

تو کد بالا به جای نام زمینه دلخواه ، نام مورد نظر زمینه دلخواه رو بنویسید ( تو 2 جا نوشته شده که هر 2 تاش هم باید همنام باشه ) . id="delkhah" هم نام آی دی برای دادن استایل که می تونید به جای delkhah نام مورد نظر رو بنویسید

لینک به ارسال

دوست عزیز این رو هرجای قالب که می خوای کپی کن بعد تو زمینه دلخوه اسم زمینرو بنویس . بعد به جای مقدار هم شورتکاتت رو بزار . تست کنید


<?php $mid_var = get_post_meta($post->ID, 'نام زمینه دخوله',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<li id="delkhah"><?php echo get_post_meta($post->ID, 'نام زمینه دخوله',true); ?></li> <?php endif; ?>

تو کد بالا به جای نام زمینه دلخواه ، نام مورد نظر زمینه دلخواه رو بنویسید ( تو 2 جا نوشته شده که هر 2 تاش هم باید همنام باشه ) . id="delkhah" هم نام آی دی برای دادن استایل که می تونید به جای delkhah نام مورد نظر رو بنویسید

من کد بالا را به شکل زیر داخل قالب گذاشتم و داخل پست هم مقدار زمینه دلخواه را شورت کد گذاشتم ولی همون شورت کد بدون هیچ تغییری به صورت متنی داخل قالب اومد.


<?php $mid_var = get_post_meta($post->ID, 'dl',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php echo get_post_meta($post->ID, 'dl',true); ?>
<?php endif; ?>

لینک به ارسال

من کد بالا را به شکل زیر داخل قالب گذاشتم و داخل پست هم مقدار زمینه دلخواه را شورت کد گذاشتم ولی همون شورت کد بدون هیچ تغییری به صورت متنی داخل قالب اومد.


<?php $mid_var = get_post_meta($post->ID, 'dl',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php echo get_post_meta($post->ID, 'dl',true); ?>
<?php endif; ?>

شورت کد که استفاده می کنید به صورت php است ؟

لینک به ارسال

شورت کد که استفاده می کنید به صورت php است ؟

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

[purchase_link id=10" style="buttons dark-blue" text="خرید]

لینک به ارسال

شما این کد رو تو فایل single.php بالای صفحه بزار


<?php $نام دلخواه= get_post_meta($post->ID, 'نام دلخواه', true); ?>

بعد هر جایی می خوای اینطوری فراخوانی کن


<?php echo $نام دلخواه; ?>

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

لینک به ارسال

شما این کد رو تو فایل single.php بالای صفحه بزار


<?php $نام دلخواه= get_post_meta($post->ID, 'نام دلخواه', true); ?>

بعد هر جایی می خوای اینطوری فراخوانی کن


<?php echo $نام دلخواه; ?>

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

اینجوری هم امتحان کردم کار نمی کنه.

لینک به ارسال

چرا زمینه دلخواه

وقتی شرت کد دارید یعنی نیازی نیست دستی بهش مقدار بدید از تابع do_shortcode برای نمایش شرت کد در قالب استفاده کنید


<?php echo do_shortcode( $content ) ?>

ومقدار $content را برابر کنید با مقدار شورتکد

لینک به ارسال

چرا زمینه دلخواه

وقتی شرت کد دارید یعنی نیازی نیست دستی بهش مقدار بدید از تابع do_shortcode برای نمایش شرت کد در قالب استفاده کنید


<?php echo do_shortcode( $content ) ?>

ومقدار $content را برابر کنید با مقدار شورتکد

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

بروزرسانی

کد زیر را اینجا پیدا کردم نمیشه برای این کار از این روش استفاده کرد؟ (چون من زیاد با php آشنا نیستم اگر امکان استفاده از این کد برای کاری که می خواهم انجام بدم وجود داشت لطفا کمی در مورد استفاده از این کد من را راهنمایی کنید. متشکرم ;) )


<div id="mobile-barcodes-tabs">
<?php
$post = $wp_query->post;
$the_url = get_field( 'download_(android)' , $post->ID );
if( $the_url ) {
echo do_shortcode( '[yeblonqrcode size="100" url="' . $the_url . '" class="" style=""]' );
}
?>
</div>

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

کدی که دادید رو دقیقفا نمبی دونم چیه

ولی راه کاریب که می خواهید بکنید به این صورته که اول دو کد شرت کد مختلف را با هم مقایسه کنید مثلا


[purchase_link id="10" style="buttons dark-blue" text="خرید"]
[purchase_link id="12" style="buttons dark-red" text="خرید"]

فرضا در دو کد بالا مقادیر متغیر مقدارstyle و id است دو زمینه دلخواه برای این دو می سازید و کدهای داخل قالب می شود


<?php
$id = get_field( 'id' , $post->ID );
$style = get_field( 'style' , $post->ID );
echo do_shortcode( '[purchase_link id="'.$id.'" style="'.$style.'" text="خرید"]' ); ?>

لینک به ارسال

جناب فخار خیلی ممنونم که پیگیری می کنید.

بین شورت کد های مختلفی که این افزونه میده فقط id هاشون متفاوت هست. من کد را به صورت زیر داخل قالب گذاشتم ( dl : زمینه دلخواه )


<?php
$id = get_field( 'dl' , $post->ID );
echo do_shortcode( '[purchase_link id="'.$id.'" style="buttons dark-blue" text="خرید"]' ); ?>

ولی ارور زیر داخل قالب میاد.

Fatal error: Call to undefined function get_field() in C:\xampp\htdocs\wp\wp-content\themes\wp\single.php on line 36

داخل خط 36 هم این بخش از کد بالا هست


$id = get_field( 'dl' , $post->ID );

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

اینو امتحان کن


<?php
$id = get_post_meta( $post->ID, 'dl', true);
echo do_shortcode( '[purchase_link id="'.$id.'" style="buttons dark-blue" text="خرید"]' ); ?>

لینک به ارسال

اینو امتحان کن


<?php
$id = get_post_meta( $post->ID, 'dl', true);
echo do_shortcode( '[purchase_link id="'.$id.'" style="buttons dark-blue" text="خرید"]' ); ?>

عالی بود با همین کد کار کرد. این true چیکار کرد که همچی درست شد؟

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

لینک به ارسال
  • 2 سال بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...