• 1403/01/28

درج کد خبر در هر پست :

با سلام

من اگر بخواهم برای هر پست در پایین پست یک کد خبر (مثلاً 100000000#) درج کنم، چطور می تونم اقدام کنم؟ 

  • 1403/01/28
  • ساعت 11:55

سلام، این برمیگرده به توابع php میتونید از تابع rand() برای ایجاد کردن یک عدد در بازه ای که براش مشخص میکنید استفاده بشه و با استفاده از post_id هر عدد رو هم در wp_postmeta ذخیره کنید


  • 1403/01/28
  • ساعت 14:20

میشه خواهشاً بیشتر توضیح بدین؟


  • 1403/01/28
  • ساعت 15:03

اول از همه با نگاه ساده و معمولی به ماجرا بهت توضیح و نمونه کد رو میدم، سعی کن کپی پیس نکنی کد ها رو متوجه شو داره چه اتفاقی می افته

برای اینکه بتونی در هر پست وردپرسی یک کد خبر خاص، مثل "#100000000" رو در پایین هر پست اضافه کنی، چند راه مختلف وجود داره که می‌تونی انتخاب کنی. من اینجا یکی از ساده‌ترین روش‌ها رو توضیح می‌دم:

۱. استفاده از افزونه‌های وردپرس: می‌تونی از افزونه‌هایی مثل "Advanced Custom Fields" (ACF) استفاده کنی تا یک فیلد دلخواه به پست‌هات اضافه کنی. با این افزونه می‌تونی یک فیلد جدید ایجاد کنی که در اون کد خبر رو وارد کنی.

۲. ویرایش قالب

اگر با کدنویسی آشنایی داری، می‌تونی فایل‌های قالب پست‌هاتو (مثل single.php یا page.php) تغییر بدی. کافیه کد PHP ای اضافه کنی که اطلاعات مورد نظر رو در پایین پست نمایش بده. مثلاً، اگر از ACF استفاده کردی، می‌تونی این کد رو اضافه کنی:

<?php if (get_field('news_code')): ?>
    <div class="news-code">کد خبر: <?php the_field('news_code'); ?></div>
<?php endif; ?>

۳. استفاده از قلاب‌ها (Hooks)

وردپرس قلاب‌های زیادی داره که می‌تونی برای اضافه کردن محتوا به پست‌ها استفاده کنی. می‌تونی از قلاب‌هایی مثل the_content استفاده کنی تا کد خبر رو به محتوای پست اضافه کنی.

function add_news_code_to_posts($content) {
    $news_code = get_field('news_code'); // فرض بر اینکه از ACF استفاده می‌کنی
    if ($news_code) {
        $content .= "<div class='news-code'>کد خبر: $news_code</div>";
    }
    return $content;
}
add_filter('the_content', 'add_news_code_to_posts');

 


  • 1403/01/28
  • ساعت 15:05

حالا بریم برای نگاه حرفه ای به ماجرا (ناگفته نمونه وقتی شما تابع رند رو نمیشناسی با ادامه کار شاید نتونی ارتباط برقرار کنی ولی من کار حرفه ای رو هم بهت نشون میدم)

این تابع ابتدا یک کد خبر جدید می‌سازه با استفاده از ID پست و یک عدد ثابت، بعد اون رو به انتهای محتوای پست اضافه می‌کنه و در نهایت این اطلاعات رو در جدول wp_postmeta ذخیره می‌کنه. برای این کار:

۱. محاسبه کد خبر: کد خبر از جمع ID پست و عدد ثابت تشکیل می‌شود.

 ۲. اضافه کردن کد به محتوا: با استفاده از قلاب the_content، کد به انتهای محتوای پست اضافه می‌شود.

 ۳. ذخیره‌سازی در جدول wp_postmeta: با استفاده از توابع وردپرس، کد خبر در پایگاه داده ذخیره می‌شود.

در اینجا کدی است که باید به functions.php اضافه کنی:

function append_news_code_to_content($content) {
    global $post;
    // این عدد ثابت را می‌توانید تغییر دهید تا به نیازهای خاص شما پاسخ دهد.
    $fixed_number = 100000000;
    $news_code = $post->ID + $fixed_number;
    $news_code_formatted = sprintf("%d-%d", $post->ID, $news_code);

    // ذخیره کد خبر در جدول wp_postmeta
    if (!get_post_meta($post->ID, 'news_code', true)) {
        update_post_meta($post->ID, 'news_code', $news_code_formatted);
    }

    // اضافه کردن کد خبر به انتهای محتوا
    $content .= "<div style='text-align:left;'>کد خبر: $news_code_formatted</div>";
    return $content;
}
add_filter('the_content', 'append_news_code_to_content');

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