firstline

افزونه ایجاد کننده یک دایرکتوری در root سایت و قرار دادن یک فایل php در امکان ویرایش آن

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

با سلام

به یک افزونه نیاز دارم که پس از نصب یک دایرکتوری myads در مسی اصلی سایت ساخته و یک فایل index.php نیز در آن قرار دهد و از قسمت مدیریت افزونه بتوان محتویات فایل index.php ویرایش کرد.

این صفحه (index.php ) نیازی به استفاده از قالب ورد پرس ندارد و فقط ممکن است از html خالی یا کدهای مستقل php برای امور تبلیغاتی استفاده کند

با تشکر

0

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


لینک به پست

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

1

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


لینک به پست

با سلام

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

با توجه به راهنمایی و تذکر بحث امنیتی که شما فرمودید، بدلیل رسیدن به هدف، آیا افزونه ای داریم که یک برگه جدید ایجاد کنه و یک آدرس مشخص داشته باشه(sitename/myads) و از بخش مدیریت افزونه بشه کدهای html یا php را در آن قرار داد و در صفحه ایجاد شده امکان تعریف داشتن یا نداشتن قالب برای صفحه وجود داشته باشه

با تشکر

0

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


لینک به پست

کلا چیزی که گفتید رو متوجه نشدم یعنی چی باشه

دقیق توضیح بدید چی کار می خواهید بکنید

اگر برگه php جداگانه ای رو می خواهید ویرایش و ذخیره کنید چه ارتباطی با پنل وردپرس داره؟

اگر منظورتون اینه که یک سری کد را در یک textarea بریزید و ذخیره اش کنید روی هاست که روشش فرق داره و نیازی به وردپرس هم نداره می شه خارج از وردپرس همه کارش را به راحتی انجام داد

اگر هدفتون ساخت tryit است که خودش رایگان و سورس بازه از خودش به طور مستقیم استفاده کنید بهتره

http://sourceforge.net/projects/tryiteditor/

1

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


لینک به پست

با سلام

ضمن تشکر از راهنمایی شما.

من برای یک سری مشتری وردپرس نصب میکنم و میخوام یک صفحه و آدرس خاص در همه این ورد پرسها وجود داشته باشه که یک متن و یا عبارت مشخص یا تبلیغاتی و یا معرفی خدمات من رو نشون بده ، مثلا با فعال کردن این افزونه یک برگه در سایت ایجاد شده و http://sitename/myads فعالش شده و اطلاعات این صفحه علاوه بر یک سری کدهای html , php و چیزی رو نشون بده که من در یک آدرس مشخص در اینترنت قرار داده ام(http://forum.wp-parsi.com/myads)

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

الان خودم بصورت دستی اینکار را انجام میدهم اما برای انجام اینکار حتما باید به کنترل پنل هاست رفته و اینکار را انجام بدهم و در مواردی که میخوام برای یک کسی اینکار را انجام بدهم و دسترسی به هاستش ندارم مشکله، اگه پلاگین باشه میتونم اونو به خود مشتری بدم و بگم روی وردپرسش نصب کنه و از این صفحه استفاده کنه

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

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

با تشکر

0

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


لینک به پست

با سلام

در حقیقت میخوام یه آدرس مثل http://blog.parhost.net/rnd یا fkhandani.ir/rnd باشه ، با لود شدن این صفحه یکی از پستهای وبلاگ بصورت تصادفی نشون داده میشه و من میخوام یکنوار تبلیغاتی بالای این صفحه ایجاد کنم که محتویات این نوار تبلیغاتی از داخل کنترل پنل وردپرس قابل تعریف و مدیریت باشه و در زیر این نوار تبلیغاتی یک پست تصادفی از این وبلاگ نشون داده بشود.

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

با تشکر

0

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


لینک به پست

این چیزی که شما می خوای نیاز به دایرکتوری و فایل نداره یک page template باید بسازید و یک ابزارک اگر فرصت شد کدش رو می گذارم

1

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


لینک به پست

با سلام

از صبر و راهنمایی های شما بسیار ممنون و سپاسگزارم

من میخوام این مورد بصورت یک افزونه باشه و در سایتی که بعنوان سازنده مشخص میشه مشخص باشه که چه سایتهایی از این افزونه استفاده میکنند و نسخه جدید هم بتونن آپدیت کنند.

لطفا راهنمایی بفرمایید که آیا همچین افزونه ای هست یا نه و راهکار چیست.

با تشکر

0

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


لینک به پست

چجوری در سایت اصلی می خواهید سایتهای استفاده کننده را مشخص کنید

افزونه را هر کسی کپی کنه نصب می کنه دیگه

برای به روز رسانی هم باید افزونه تون رو در مخزن وردپرس ثبت کنید تا به روز رسانی بشه و یا اگر به صورت شخصی می خواهید باید با json و xml کاملا آشنایی داشته باشید و براش یک rss مخصوص به روز رسانی بنویسید

یا اینکه کلا به صورت cdn اجراش کنید یعنی اسکریپت اصلی رو سایت مرجع باشه و کد اسکریپت بهش وصل بشند که نیازمند سروری قدرتمنده و باید سرویستون بتونه ترافیکشون رو تحمل کنه

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

1

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


لینک به پست

با سلام

ضمن تشکر از راهنمایی های تخصصی و حرفه ای شما.

فکرکنم با توجه به تذکرات و راهنمایی های شما باید هدفم را بصورت زیر تغییر داده و اصلاح کنم:

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

(باید اینکار توسط یک افزونه انجام شود) لطفا راهنمایی بفرمایید که آیا افزونه ای برای اینکار وجود دارد که بعد بتونم اصلاحش کنم یا نه؟

با تشکر

0

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


لینک به پست

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

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

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

اول کارتون را درست آنالیز کنید

بعد بخش به بخش بنویسید

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

این پیوند را هم برای شروع بخوانید

ایجاد پنل تنظیمات در مدیریت

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط jistili1
      سلام دوستان.
      ببینید من یک فرم دارم که فقط دو input داره.یک اینپوت متن و یک اینپوت سابمیت.توی اینپوت متن ، کاربر کد imdb یک فیلم رو میده.بعد فرم من با ajax ارسال میشه.فرض بگیریم مقادیر برای صفحه check.php ارسال بشه.حالا من توی صفحه check.php همچین کدی رو دارم:
      <?php if(isset($_POST["btn"])) { echo file_get_contents("http://mydiba.club/".$_POST["link"]."/"); ?> <script src="jquery-3.4.1.js"></script> <script> $(document).ready(function(){ $(".-dl .Block_dl").each(function(){ var href=$(this).find(".dublboxa:first-of-type").attr("href"); $.ajax({ url:"check2.php", method:"POST", data:"link="+href }); }); }); </script> <?php } ?> اگه به کد دقت کنید ، وقتی کاربر کد imdb یک فیلم رو وارد کرد ، در صفحه check کل محتویات اون فیلم که در یکی از سایت های دانلود فیلم هست echo میشه.بعد در این قسمت یک ajax دیگه هم داریم که خودش توی یک صفحه check هست.کار این قطعه کد ajax که در جی کوئری نوشته شده اینه که تمامی لینک های دانلود اون فیلم رو از سایت دانلود فیلم بگیره و ببره به یک صفحه check دیگر که در اینجا اسمش check2.php هست.خودتون میتونید کد رو ببینید.حالا اینکه توی صفحه check2.php چی هست دیگه مهم نیست.خلاصشو بگم : من اینکارو کردم ولی همونطور که فکرشو میکردم انجام نشد.شما چه راه حلی برای این کار دارید؟در واقع الان با دو تا ajax تو در تو روبرو هستیم.
      یک قسمت از کد من اشکال داره یا در کل غیر استاندارد نوشتم؟اگه میشه یه راه حل بگید که اینکار رو بتونم انجام بدم.دقت کنید که اون قسمت از کد جی کوئری که از متد each استفاده کردم ، برای اینه که به ازای هر لینکی که در صفحه اون فیلم در سایت دانلود وجود دارد ، یک بار این ajax که خودش توی صفحه check یک ajax دیگست رو انجام بده.
      خیلییی خیلییی ممنون میشم اگه کمکم کنید.
      ضمنا از curl هم نمیخوام استفاده کنم
    • توسط mortaza
      لازم دارم کل کلمات به متن رو استخراج کنم و بعد بررسی کنم که ایا این کلمات توی دیتابیس من موجود هستن یا ن و الی آخر
      اما توی مرحله استخراج لغات گیر کردم (لغات انگلیسی هستن) خب من اول اومدم کد زیر رو امتحان کردم
      preg_match_all("~([\w]+)~", $text,$words); خیلی خوب کار کرد تا مشکلی که داشت این بود که لغاتی مثل can’t را دو لغت حساب میکرد (به این صورت: لغت اول: can لغت دوم: t) 
      من اومدم کد رو شکل زیر تغییر دادم:
      preg_match_all("~([\w\’]+)~", $text,$words); اما مشکلی که داشت بعضی کلمات که بلافاصله بعدشون نقطه یا کاما بود رو اشتباه نشون میداد مثلا به جای minds یکی از عضو های array 
      minds� هست چندین تا لغت دیگه هم به همین شکل یه کاراکتر � اضافی به تهشون اضافه شده
      چه کار کنیم که این مشکل پیش نیاد؟ اصلا دلیل اتفاق افتادن این پدیده چیه؟
       
      نمونه ای از متن مد نظرم:
      Procrastination comes in many disguises. We might resolve to tackle a task, but find endless reasons to defer it. We might prioritize things we can readily tick off our to-do list—answering emails, say—while leaving the big, complex stuff untouched for another day. We can look and feel busy, while artfully avoiding the tasks that really matter. And when we look at those rolling, long-untouched items at the bottom of our to-do list, we can’t help but feel a little disappointed in ourselves.
      The problem is our brains are programmed to procrastinate. In general, we all tend to struggle with tasks that promise future upside in return for efforts we take now. That’s because it’s easier for our brains to process concrete rather than abstract things, and the immediate hassle is very tangible compared with those unknowable, uncertain future benefits. So the short-term effort easily dominates the long-term upside in our minds—an example of something that behavioral scientists call present bias.
      How can you become less myopic about your elusive tasks? It’s all about rebalancing the cost-benefit analysis: make the benefits of action feel bigger, and the costs of action feel smaller. The reward for doing a pestering task needs to feel larger than the immediate pain of tackling it.
      To make the benefits of action feel bigger and more real:
      Visualize how great it will be to get it done. Researchers have discovered that people are more likely to save for their future retirement if they’re shown digitally aged photographs of themselves. Why? Because it makes their future self feel more real—making the future benefits of saving also feel more weighty. When we apply a lo-fi version of this technique to any task we’ve been avoiding, by taking a moment to paint ourselves a vivid mental picture of the benefits of getting it done, it can sometimes be just enough to get us unstuck. So if there’s a call you’re avoiding or an email you’re putting off, give your brain a helping hand by imagining the virtuous sense of satisfaction you’ll have once it’s done—and perhaps also the look of relief on someone’s face as they get from you what they needed.
      Pre-commit, publicly. Telling people that we’re going to get something done can powerfully amplify the appeal of actually taking action, because our brain’s reward system is so highly responsive to our social standing. Research has found that it matters greatly to us whether we’re respected by others—even by strangers. Most of us don’t want to look foolish or lazy to other people. So by daring to say “I’ll send you the report by the end of the day” we add social benefits to following through on our promise—which can be just enough to nudge us to bite the bullet.
       
       
    • توسط estedadrap
      سلام
      من میخوام از زمینه دلخواه استفاده کنم تو یه قسمت از کد php اما هرکاری میکنم اررور ; یا , میده
       
      echo do_shortcode(' <div class="buttondl"> <a href="#buy_album" class="popup_link button medium buy_album">Download</a> <div id="buy_album" class="popup"><div class="def-block widget"> اینجا زمینه دلخواه نمایش داده بشه بصورت لینک </div></div></div> '); <a href="<?php $dl = get_post_meta($post->ID, 'dl', true); ?>"></a> میخوام زمینه دلخواه بالا رو داخل کد php قرار بدم
    • توسط estedadrap
      سلام
      خسته نباشید 
      من جهت تکمیل کرد بخش آرتیست یک سایت موزیک میخوام در قسمت ارتیست تعداد کل اهنگ های مرتبط با هر ارتیست رو نشون بدم
      قالبی که استفاده میکنم این قابلیت رو داره که با ایجاد بخش ارتیست برای هر شخض این کار رو انجام بده اما این قابلیت داخل پست تیپ داخل داشبورد گذاشته شده 
      تو عکسی که لینکشو زیر میزارم بهتر متوجه خواهید شد..
      AXE
      و اما... پیگیر شدم و کدش رو با هزار مکافات که داخل یه فایل فانشن تو یه افزونه اختصاصی قالب جا خوش کرده بود رو پیدا کردم
      اما از اونجایی که کدنویسی خیلی پیچیده ای داشت نتونستم به هدفم برسم
      کد رو براتون میزارم ..
      <?php /** * Post Types * * @author Codevz * @link http://codevz.com */ if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } class Codevz_CPT { public function __construct() { add_action( 'admin_head', array( $this, 'admin_head' ) ); $this->types = array( 'artists' => 'dashicons-admin-users', 'songs' => 'dashicons-format-audio', 'news' => 'dashicons-format-audio', 'playlists' => 'dashicons-playlist-audio', 'podcasts' => 'dashicons-microphone', 'lyrics' => 'dashicons-welcome-write-blog', 'videos' => 'dashicons-video-alt3', 'events' => 'dashicons-calendar', 'gallery' => 'dashicons-format-gallery' ); /* Register post types */ add_action( 'init', array( $this, 'register' ), 0 ); /* Manage CPT columns action */ add_action( 'manage_posts_custom_column', array( $this, 'manage_columns' ), 10, 2 ); /* Manage CPT columns filter */ foreach ( $this->types as $name => $i ) { $columns = array(); add_filter( "manage_edit-".$name."_columns", function () use ( $columns ) { global $typenow; $i = array(); $i['cb'] = 'cb-select-all-1'; $i['cover'] = __( 'Cover', 'cd' ); $i['title'] = __( 'Title', 'cd' ); if ( $typenow !== 'artists' ) { $i['cd_artist'] = __( 'Artist', 'cd' ); } if ( $typenow === 'artists' ) { $i['cd_items'] = __( 'Items', 'cd' ); $i['taxonomy-artist'] = __( 'Under', 'cd' ); } if ( $typenow === 'events' ) { $i['cd_event_date'] = __( 'Start', 'cd' ); $i['cd_end_event_date'] = __( 'End', 'cd' ); $i['cd_venue'] = __( 'Venue', 'cd' ); } if ( $typenow === 'songs' ) { $i['cd_plays'] = __( 'Plays', 'cd' ); $i['cd_downloads'] = __( 'Downloads', 'cd' ); } if ( $typenow === 'songs' ) { $i['cd_plays'] = __( 'Plays', 'cd' ); $i['cd_downloads'] = __( 'Downloads', 'cd' ); } if ( $typenow === 'videos' ) { $i['cd_views'] = __( 'Views', 'cd' ); } $i['cd_likes'] = __( 'Likes', 'cd' ); $i['cd_dislikes'] = __( 'Dislikes', 'cd' ); $i['comments'] = __( 'CM', 'cd' ); $i['author'] = __( 'By', 'cd' ); if ( $typenow === 'post' ) { $i['categories'] = __( 'Categories', 'cd' ); } $i['date'] = __( 'Date', 'cd' ); $columns = $i; return $columns; }); } /* Sortable cols */ $this->sortable = array( 'cd_event_date', 'cd_end_event_date', 'cd_plays', 'cd_likes', 'cd_dislikes', 'cd_downloads', 'cd_views' ); foreach ( $this->types as $name => $i ) { $columns = array(); add_filter( "manage_edit-".$name."_sortable_columns", function () use ( $columns ) { foreach ( $this->sortable as $i ) { $columns[$i] = $i; } return $columns; }); } add_action( 'load-edit.php', array( $this, 'sorting_request' ) ); } public function admin_head() { echo '<style> .vc_license-activation-notice, .eg-update-notice-wrap, .rs-update-notice-wrap { position: absolute; height: 1px !important; left: -10000px !important } .dashicons-format-audio:before, .dashicons-playlist-audio:before, .dashicons-microphone:before, .dashicons-welcome-write-blog:before, .menu-icon-artists .dashicons-admin-users:before, .dashicons-video-alt3:before, .dashicons-format-gallery:before, .dashicons-calendar:before { color: #2ea2cc !important } .wp-has-current-submenu .dashicons-format-audio:before, .wp-has-current-submenu .dashicons-playlist-audio:before, .wp-has-current-submenu .dashicons-microphone:before, .wp-has-current-submenu .dashicons-welcome-write-blog:before, .wp-has-current-submenu .dashicons-admin-users:before, .wp-has-current-submenu .dashicons-video-alt3:before, .wp-has-current-submenu .dashicons-format-gallery:before, .wp-has-current-submenu .dashicons-calendar:before { color: #fff !important } th#artist, th#cd_plays, th#cd_likes, th#cd_dislikes, th#alphabet, th#cd_downloads, th#cd_views, th#items, th#taxonomy-artist, th#categories, th#venue, th#status { width: 8% } th#cd_event_start, th#cd_event_end { width: 10% } th#cover { width: 42px } .cover img, .riv_post_thumbs img { border-radius: 4px; width: 40px; height: 40px } .cd_ico { background-image: none !important; background-color: #2A81CC; text-align: center; border-radius: 2px; padding: 5px; width: inherit !important; height: inherit !important; } .cd_ico:before { color: #fff !important } .wpb_element_title .cdz_ico { width: 22px !important; height: 20px !important } [data-param_type|=posttypes] .edit_form_line, [data-param_type|=checkbox] .edit_form_line { height: 126px; overflow: auto; border: 1px solid #F3F3F3; padding: 2px 0 0 10px } [data-param_type|=posttypes] .vc_checkbox-label, [data-param_type|=checkbox] .vc_checkbox-label { display: block; margin: 6px 0 } </style>'; } public function register() { $this->menu_separator( 26 ); $options = get_option( '_cs_options' ); foreach ( $this->types as $slug => $icon ) { $opt = isset( $options[ $slug . '_settings' ] ) ? $options[ $slug . '_settings' ] : array(); $opt = array( 'slug' => !empty( $opt['slug'] ) ? $opt['slug'] : $slug, 'title' => !empty( $opt['title'] ) ? $opt['title'] : ucfirst( $slug ), 'alphabet_slug' => !empty( $opt['alphabet_slug'] ) ? $opt['alphabet_slug'] : $slug.'/browse', 'alphabet_title'=> !empty( $opt['alphabet_title'] ) ? $opt['alphabet_title'] : 'Alphabet', 'cat_slug' => !empty( $opt['cat_slug'] ) ? $opt['cat_slug'] : $slug.'/cat', 'cat_title' => !empty( $opt['cat_title'] ) ? $opt['cat_title'] : 'Categories' ); register_taxonomy( $slug.'_cat', $slug, array( 'hierarchical' => true, 'labels' => array( 'name' => $opt['cat_title'], 'menu_name' => $opt['cat_title'] ), 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'show_in_rest' => true, 'rewrite' => array( 'slug' => $opt['cat_slug'], 'with_front' => false ), ) ); if ( $slug === 'artists' ) { register_taxonomy( 'artist', 'artists', array( 'hierarchical' => true, 'labels' => array( 'name' => $opt['alphabet_title'], 'menu_name' => $opt['alphabet_title'] ), 'show_ui' => true, 'show_admin_column' => true, 'show_in_rest' => true, 'query_var' => true, 'rewrite' => array( 'slug' => $opt['alphabet_slug'], 'with_front' => false ), ) ); } register_post_type( $slug, array( 'labels' => array( 'name' => $opt['title'], 'menu_name' => $opt['title'] ), 'public' => true, 'menu_icon' => $icon, 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields', 'comments', 'author' ), 'has_archive' => true, 'show_in_rest' => true, 'rewrite' => array( 'slug' => $opt['slug'], 'with_front' => false ) ) ); register_taxonomy_for_object_type( 'post_tag', $slug ); } $this->menu_separator( 36 ); } public function sorting_request() { add_filter( 'request', array( $this, 'sorting' ) ); } public function sorting( $vars ) { foreach ( $this->sortable as $i ) { if ( isset( $vars['orderby'] ) && $i === $vars['orderby'] ) { if ( $i == 'cd_event_date' || $i === 'cd_end_event_date' ) { $vars = array_merge( $vars, array( 'meta_query' => array( array( 'key' => $i, 'value' => date('2030/12/28 10:30'), 'compare' => '<' ) ) ) ); } else { $vars = array_merge( $vars, array( 'meta_key' => $i, 'orderby' => 'meta_value_num' ) ); } } } return $vars; } public function manage_columns( $column, $post_id ) { $meta = get_post_meta( $post_id, 'cd_meta', true ); $meta = isset( $meta ) ? $meta : array(); $out = ''; switch( $column ) { case 'cover' : ob_start(); the_post_thumbnail( 'thumbnail' ); $out = ob_get_clean(); break; case 'cd_items' : $out .= $this->get_artist_items( 'post', $post_id ); $out .= $this->get_artist_items( 'songs', $post_id ); $out .= $this->get_artist_items( 'news', $post_id ); $out .= $this->get_artist_items( 'posts', $post_id ); $out .= $this->get_artist_items( 'videos', $post_id ); $out .= $this->get_artist_items( 'podcasts', $post_id ); $out .= $this->get_artist_items( 'playlists', $post_id ); $out .= $this->get_artist_items( 'events', $post_id ); $out .= $this->get_artist_items( 'gallery', $post_id ); $out .= $this->get_artist_items( 'lyrics', $post_id ); $out .= $this->get_artist_items( 'posts', $post_id ); $out .= $this->get_artist_items( 'product', $post_id ); break; case 'cd_event_date' : $out .= date_i18n( "j F, Y", strtotime( isset( $meta['event_date'] ) ? $meta['event_date'] : '' ) ) . '<br />'; $out .= date_i18n( "H:i", strtotime( isset( $meta['event_date'] ) ? $meta['event_date'] : '' ) ); break; case 'cd_end_event_date' : $out .= date_i18n( "j F, Y", strtotime( $meta['end_event_date'] ) ) . '<br />'; $out .= date_i18n( "H:i", strtotime( $meta['end_event_date'] ) ); break; case 'cd_venue' : $out = isset( $meta['venue'] ) ? $meta['venue'] : ''; break; case 'cd_artist' : $out = $this->get_artists( $post_id ); break; case 'cd_plays' : $out = get_post_meta( $post_id, 'cd_plays', true ); $out = !is_array( $out ) ? $out : ''; break; case 'cd_likes' : $out = get_post_meta( $post_id, 'cd_likes', true ); break; case 'cd_dislikes' : $out = get_post_meta( $post_id, 'cd_dislikes', true ); break; case 'cd_downloads' : $out = get_post_meta( $post_id, 'cd_downloads', true ); break; case 'cd_views' : $out = get_post_meta( $post_id, 'cd_views', true ); break; } echo $out ? $out : '_'; } public function menu_separator( $p ) { global $menu; static $id = 0; if ( !is_int( $p ) ) { $mp = 0; foreach( $menu as $mp => $i ) { if ( $i[2] === $p ) { break; } } $p = $mp + 1; } $menuFile = 'separator-custom-' . $id++; $menu[$p] = array( '', 'read', $menuFile, '', 'wp-menu-separator cd_separator' ); ksort( $menu ); } public function get_artist_items( $cpt, $id ) { $query = new WP_Query( array( 'post_type' => $cpt, 'meta_query' => array( array( 'relation' => 'OR' ), array( 'key' => 'cd_meta', 'value' => '"' . $id . '"', 'compare' => 'LIKE' ) ), 'posts_per_page' => -1 ) ); return $query->post_count ? '[' . $query->post_count . '] ' . ucwords( $cpt ) . '<br />' : ''; wp_reset_postdata(); } public function get_artists( $id, $out = '' ) { $meta = get_post_meta( $id, 'cd_meta', true ); $meta = isset( $meta['artist'] ) ? $meta['artist'] : array(); $artists = array(); if ( $meta ) { foreach( $meta as $i ) { if ( get_the_title( $id ) !== get_the_title( $i ) ) { $artists[] = '<a href="' . get_post_permalink( $i ) . '">' . get_the_title( $i ) . '</a>'; } } $out .= implode( '<br />', $artists ); } return $out; } } new Codevz_CPT(); و اما میخوام کد رو داخل این حلقه استفاده کنم .. میدونم که برای خیلی از اساتید این یه مسئله خیلی پیش پا افتاده هست 
      لطفا بررسی کنید
      /* Artists */ if ( $cpt === 'artists' ) { if ( ! empty( $meta['fb'] ) ) { echo '<div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5&appId=376512092550885"; fjs.parentNode.insertBefore(js, fjs); }(document, \'script\', \'facebook-jssdk\'));</script>'; echo '<div class="mbt fb-page" data-href="' . $meta['fb'] . '" data-tabs="timeline" data-width="500" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"></div>'; } if ( isset( $meta['social'] ) ) { echo '<div class="clr mb">'; $codevz->social( $meta['social'] ); echo '</div>'; } echo '<img class="cd_instagramimge" src="' . esc_url( get_post_meta( get_the_ID(), 'vphoto', true ) ) . '" />'; ?> <?php echo '<br>'; }  
    • توسط a.sa
      با عرض سلام و خسته نباشید 
      دنبال کدی میگردم که خرید کاربران رو بر اساس استان محل زندگیشون محدود کنه (قبلا کاربر ثبت نام کرده)
      و این محدودیت لازم نیست پیچیده بشه
      فرض کنید ما محصولی داریم که میخوایم فقط به استان تهران بفروشیم و به اون محصول ویژگی تهران رو میدیم و میخوایم اگر کاربر مثلا از اصفهان بود وقتی وارد صفحه محصول مربوطه به تهران شد، بجای بخش اضافه کردن به سبد خرید پیامی مثل: "این محصول برای استان شما محدود شده است" مواجه بشه
      کدی که من میخوام کدیه که محصولات رو به دو ویژگی تهران و سایر استان ها تقسیم میکنه یعنی یسری محصولات فقط برای تهران به فروش میرسن و یسری سایر استان ها پس کد ما کلا با دو ویژگی تهران و سایر استان ها کار داره
      پس کدی که میخوایم کدی هست که کاربران رو بر اساس ویژگی محصولات(کلا دو ویژگی تهران، سایر استان ها) و استانی که موقع ثبت نام انتخاب کرده، در خرید محصولات محدود کنه 
      اگر میتونید بنده رو راهنمایی کنید واقعا ممنون میشم 
      اگر کسی از دوستان میتونه این کار رو انجام بده هزینش رو لطفا بگه