انجمن


اضافه کردن نام «مترجم»  (۸ نوشته)

  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۶ سال پیش
    ۲۸ آبان ۱۳۸۷ - ۲۰:۰۰

    من می خواهم در بلاگم مطالب ترجمه شده بگذارم. نویسندگان و مترجمین مقالات متفاوتند. برای نویسندگان می توانم پروفایل درست کنم، ولی نام مترجم را چگونه اضافه کنم؟
    می دانم که از Custom Fields می توان استفاده کرد تا کلمه ی «ترجمه از» یا «مترجم:» را بتوان پس از نام نویسنده اضافه کرد، ولی نمی دانم چگونه.
    می شود راهنمایی ام کنید؟

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۵ بار
    # نوشته شده: ۱۶ سال پیش
    ۲۸ آبان ۱۳۸۷ - ۲۳:۵۴

    این سری آموزش‌ها رو تا آخر بخونین:
    http://gonahkar.com/archives/1387/02/13/wordpress-custom-fields-part-1/

  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۶ سال پیش
    ۲۹ آبان ۱۳۸۷ - ۰۳:۰۹

    هر دو مقاله رو خوندم.
    توی سایت به یکی از نوشته ها مترجم رو با استفاده از Custom Fields اضافه کردم:

    KEY= translator
    VALUE=حسن خدادادی

    بعد توی فایل single.php این کدها رو که بر اساس مقاله های شما نوشته شده اضافه کردم:

    <?php if(isset(get_post_meta($post->ID, 'translator',true))) : ?>
    <?php echo get_post_meta($post->ID, 'translator',true); ?>
    <?php endif; ?>

    ولی صفحه باز نمیشه. پیام خطا اینه که مربوط میشه به کدهایی که وارد کردم:
    Fatal error: Can't use function return value in write context in /var/www/vhosts/alefba.us/httpdocs/wp-content/themes/alefba/single.php on line 12

    کل کدهای فایل single.php به این قراره:

    <?php get_header(); ?>
    
    <div id="content">
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
      <div class="post" id="post-<?php the_ID(); ?>">
        <h2>
          <?php the_title(); ?>
        </h2>
        <small><?php _e('By','alefba');?> <?php the_author_posts_link('namefl'); ?> - <?php the_time(__('j M Y','alefba')); ?> - <?php _e('Category:','alefba');?>
        <?php the_category(', ') ?>
    <!-- TRANSLATOR"S NAME -->
    <?php if(isset(get_post_meta($post->ID, 'translator',true))) : ?>
    <?php echo get_post_meta($post->ID, 'translator',true); ?>
    <?php endif; ?>
    <!-- END OF TRANSLATOR"S NAME -->
    	<?php edit_post_link('ویرایش', ' - ', ''); ?>
        </small>
        <div class="entry">
           <?php the_content("" . __('Read the rest of this page', 'alefba') ." &raquo;
    "); ?>
    
          <?php wp_link_pages("<strong>" . __('Pages', 'alefba') . ":</strong>", '
    ', __('number','alefba')); ?>
        </div>
        <?php if ( function_exists('the_tags') ) {
    			the_tags('<span id="tags"><strong>Tags:</strong> ', ', ', '</span>'); } ?>
      </div>
      <?php comments_template(); ?>
      <?php endwhile; else: ?>
      <?php __('Sorry, no posts matched your criteria.','alefba');?>
    
      <?php endif; ?>
    </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۵ سال پیش
    ۱۲ آذر ۱۳۸۷ - ۱۷:۱۲

    من زمینه ی دلخواه را اضافه کردم (translator). بعد هم این کد را به single.php اضافه کردم:

    مترجم: <?php echo get_post_meta($post->ID, 'translator',true); ?>

    مشکل اینجاست که عبارت «مترجم: » در همه ی نوشته ها تکرار میشه. در حالی که باید فقط وقتی نشون داده بشه که زمینه ی (translator) به یک نوشته اضافه شده باشه. چطور میشه این کار رو کرد؟

  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۳ آذر ۱۳۸۷ - ۰۸:۳۴

    کسی نیست اینجا که جوابی بده؟

  • بهرنگ

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۱۳۹۹
    تشکر شده: ۴۵۱ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۳ آذر ۱۳۸۷ - ۱۴:۰۷

    خب کلمه ی "مترجم:" رو از کد بالا حذف کن و همراه نام مترجم واردش کن...

  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۴ آذر ۱۳۸۷ - ۲۲:۴۴

    اونم حرفیه. ولی راه حل درست این نیست. باید راهی باشه که بشه این کار رو درست انجام داد. مسلما برای کسی که PHP می دونه و codex وردپرس رو هم بلده باید خیلی ساده باشه. چون تنها کاری که انجام میشه اینه که اگر Custom Fields خاصی وجود داشته باشه کلمه ی خاصی را نشون بده و بعد value را به نمایش بذاره.

  • sourenaa

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹۱
    تشکر شده: ۱۷ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۵ آذر ۱۳۸۷ - ۱۷:۱۸

    حالا فهمیدم چی میگی. منظورت اینه:

    <?php
    $translator = get_post_meta($post->ID, 'translator', true);
    if ( $translator ) {
    echo "مترجم: $translator";
    }
    ?>

    درست شد.

درباره‌ی این موضوع