رفتن به مطلب

mani261

عضو سایت
  • تعداد ارسال‌ها

    11
  • تاریخ عضویت

  • آخرین بازدید

نوشته‌ها ارسال شده توسط mani261

  1. سلام دوستان؛

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

    قصد داریم در بخشی از سایت شبیه سایت‌های دایرکتوری که دسته‌بندی مطالب رو روی نقشه گوگل نشون می‌دن، بتونیم پست‌ها رو نمایش بدیم. قبلاً از یک قالب اختصاصی برای این کار استفاده می‌شده که این امکان درش طراحی شده ولی قالب رو داریم می‌ذاریم کنار.

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

    در حال جستجوی افزونه‌ها هم هستم ولی عمدتاً سازگار با پست سفارشی یا فیلدهای مختصات جغرافیایی نیستند و فیلد اختصاصی خودشون رو دارند.

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

    سپاسگزارم

  2. مشکل با این قطعه کد که کسی در همون لینک اولی پیشنهاد کرده بود حل شد. فقط من آرگومان get_users رو خالی گذاشتم که همهٔ نقش‌های عضو سایت رو بخونه:

    add_filter('wp_dropdown_users', 'MySwitchUser');
    function MySwitchUser()
    {
        global $post; // remove if not needed
        //global $post is available here, hence you can check for the post type here
        $users = get_users();
    
        echo'<select id="post_author_override" name="post_author_override" class="">';
    
        echo'<option value="1">Admin</option>';
    
        foreach($users as $user)
        {
            echo '<option value="'.$user->ID.'"';
    
            if ($post->post_author == $user->ID){ echo 'selected="selected"'; }
    
            echo'>';
            echo $user->display_name.'</option>';     
        }
        echo'</select>';
    
    }

    دستور شرطی باعث می‌شه کاربر نویسنده رو بفهمه و انتخاب کنه که در کد اول ایراد داشت و درست کار نمی‌کرد.

    • امتیاز 1
  3. ممنون از پاسخ. در مورد اول پشتیبانی از author در کد داخل لینک وجود دارد. مشکل این است که فقط مدیران سایت رالیست می‌کند نه کاربری که مطلب را ارسال کرده.

    در مورد ایراد کد فعلی، متوجه راه‌حلتون نشدم. می‌شه لطفاً کلیدواژه‌ای برای سرچ مثالش بگید که به پاسخ برسم؟

  4. سلام وردپرسی‌های عزیز؛

    من قصد دارم برای یک نوع پست سفارشی که کاربران با نقش مشترک ارسال می‌کنند امکان اختصاص نام کاربر به عنوان نویسنده رو بگذارم. وردپرس توی پیشخوان ستون Author نام فرستنده رو درست نشون می‌ده اما در حالت ویرایش فقط نام نویسندگان مدیر سایت دیده می‌شه.

    از این سایت کد زیر رو پیدا کردم که با تغییر پارامتر، تمام کاربران رو در بخش ویرایش نشون می‌ده منتها مشکل اینه که به صورت پیش‌فرض، کاربر نویسنده اصلی انتخاب نمی‌شه و با هر بار ویرایش مجدد نام نویسنده به اول فهرست (یا ادمین) تغییر پیدا می‌کنه. چه جوری

    post_author

    رو انتخاب کنم که هر بار تغییر نکنه؟

     

    add_filter('wp_dropdown_users', 'MySwitchUser');
    function MySwitchUser($output)
    {
    
        //global $post is available here, hence you can check for the post type here
        $users = get_users();
    
        $output = "<select id=\"post_author_override\" name=\"post_author_override\" class=\"\">";
    
        //Leave the admin in the list
        $output .= "<option value=\"1\">Admin</option>";
        foreach($users as $user)
        {
            $sel = ($post->post_author == $user->ID)?"selected='selected'":'';
            $output .= '<option value="'.$user->ID.'"'.$sel.'>'.$user->display_name.'</option>';
        }
        $output .= "</select>";
    
        return $output;
    }

     

  5.  

    در 40 دقیقه قبل، imanfakhar گفته است :

    remove_action  رو توی functions.php قالب اصلی اجرا کنید این فایل همیشه به فایلهای دیگه اولویت داره ترجیحا بعد از اینکلود فایلهای library قرارش بدید

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

    با تغییر اولویت اجرای اکشن هم نتونستم کنترلش کنم.

  6. خب من کد روطبق راهنمایی شما به این شکل نوشتم ولی باز هم تابع والد اجرا می‌شه :(

    function child_remove_parent_function() {
        remove_action( 'cleanretina_footer', 'cleanretina_footer_info' );
        add_action( 'cleanretina_footer', 'childtheme_footer_info' );
    }
    
    add_action( 'after_setup_theme', 'child_remove_parent_function' );

     

  7. در 2 ساعت قبل، pctricks گفته است :

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

    همین کار رو کردم و اکشن من اجرا می‌شه. هدف اینه که اکشن قالب اصلی اجرا نشه. بابتش هم این کد رو نوشتم ولی باز اجرا می‌شه:

    function child_remove_parent_function() {
        remove_action( 'cleanretina_footer', 'cleanretina_footer_info' );
    }
    add_action( 'init', 'child_remove_parent_function' );

     

  8. <?php 
    $my_custom_query= new WP_Query(array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'cat'	=>	'1',
    'order' => 'DESC',
    'orderby' => 'ID',
    'posts_per_page' =>'5',
    'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 
    )); 
    
    $i = 0;
    
    if($my_custom_query->have_posts()) : 
    
    while($my_custom_query->have_posts()) : $my_custom_query->the_post();?> 
    <?php $i++; ?>	
    	<h2 class="title-<?php echo $i; ?>"><?php the_title(); ?></h2>
    	<p class="post-<?php echo $i; ?>"><?php the_excerpt(); ?></p>
    <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>

    توی این قطعه کد من یک متغیر به اسم i گذاشتم که در هر بار اجرای حلقه وردپرس با یک جمع می‌شه. این جوری توی تگ عنوان و خلاصه مطلبم هربار یک کلاس متفاوت (مثلاً از title-1 تا title-5) ایجاد می‌شه.

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

    • امتیاز 2
  9. قصد دارم توی Child Theme یکسری توابعی رو بازنویسی کنم که توی فایل‌های اصلی قالب (مثل فوتر) نیست که بشه به سادگی کپی پیست و بازنویسی کرد بلکه در فایلهای داخلی مثلاً در فولدر library قرار داره و قابل بازنویسی عادی نیست.
    از روش این راهنما و تابع
    remove_action
    هم استفاده کردم ولی انجام نشد. یعنی هم نتیجه تابع قالب اصلی ظاهر می‌شه و هم نتیجه تابع فرزند. من می‌خوام تابع اصلی کلاً اجرا نشه.

    کسی ایده‌ای در این مورد داره؟
     

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