نحوه نمایش نوتیفیکیشن های بادی پرس در منو بالایی قالب Newspaper 10 و جدید تر

چندی پیش یکی از دوستان از من خواستن که امکاناتی که قبلا به قالب Newspaper اضافه کرده بودم به نسخه جدید هم اضافه کنم اما از اونجایی که برخی از کد های قالب (اکثر کدها) نسخه ۱۰ بصورت افزونه اجرا میشن دیگه نمیشه بصورت استاندارد تغییرات رو از طریق تم چیلد اعمال کرد و از سوی دیگه افزودن این امکانات به قالب باید از سوی سازنده اعمال بشن بنابرین تصمیم گرفتم بجای پیچیده تر کردن موضوع ایجاد یک افزونه جداگانه برای قالب نیوزپیپر، نحوه افزودن این امکانات رو بصورت دستی آموزش بدم تا اگر علاقه مند هستید این امکانات رو به قالب خودتون اضافه کنید.

خوب در آموزش قبل یادگرفتید چطوری امکان ورود و عضویت به کمک حساب شبکه های اجتماعی رو به قالب اضافه کنید! حالا من به شما آموزش می دهم که چطور می تونید اعلامیه های بادی پرس (Buddypress notification) رو به تاپ منو قالب Newspaper اضافه کنید

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

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

گام اول: در قسمت پوشه پلاگین ها در هاست خودتون این فایل را ویرایش کنید: wp-content/plugins/td-standard-pack/Newspaper/parts/header/top-menu.php

گام دوم: کد زیر رو جاگزین کد های این فایل کنید:

<div class="td-header-sp-top-menu">


	<?php
	// show the weather if needed
	if (td_util::get_option('tds_weather_top_menu') == 'show') {
        $atts['w_key'] = td_util::get_option('tds_weather_key_top_menu');
        $atts['w_location'] = td_util::get_option('tds_weather_location_top_menu');
		$atts['w_units'] = td_util::get_option('tds_weather_units_top_menu');
		// render the weather
		echo td_weather::render_generic($atts, 'td_top_weather_uid', 'top_bar_template');
	}



	// show the date and time if needed
    if (td_util::get_option('tds_data_top_menu') == 'show') {
        $tds_data_time = td_util::get_option('tds_data_time_format');
        if ($tds_data_time == '') {
            $tds_data_time = 'l, F j, Y';
        }
        // if the js date is enabled hide the default one
        $td_date_visibility = '';
        if (td_util::get_option('tds_data_js') == 'true') {
            $td_date_visibility = 'style="visibility:hidden;"';
        }
        ?>
        <div class="td_data_time">
            <div <?php echo $td_date_visibility ?>>

                <?php echo date_i18n(stripslashes($tds_data_time)); ?>

            </div>
        </div>
    <?php
    }


/* added to support Buddypress (macse)*/
        //test if user is logd in or not
        if ( is_user_logged_in() ) {
            //get current logd in user data
            global $current_user;
            echo '<ul class="top-header-menu">
						<li class="menu-item">
                            <a style="background-color: #303030; border: 1px solid #982828; border-radius: 10px; padding: 1px 5px;" href="' . bp_core_get_user_domain(bp_loggedin_user_id()) . 'notifications/">' . bp_notifications_get_unread_notification_count( bp_loggedin_user_id() ) . '</a>
                        </li>
                 </ul>';
        }


    //show login widget
    if (td_util::get_option('tds_login_sign_in_widget') == 'show') {
        //test if user is logd in or not
        if ( is_user_logged_in() ) {
            //get current logd in user data
            global $current_user;

            //<span class="td-sp-ico-logout"></span>
            echo '<ul class="top-header-menu td_ul_logout">
                        <li class="menu-item">' .
                            get_avatar($current_user->ID, 20) . '<a href="' . bp_core_get_user_domain(bp_loggedin_user_id()) . '" class="td_user_logd_in">' . $current_user->display_name . '</a>' .
                        '</li>
                        <li class="menu-item">
                            <a href="' . wp_logout_url(home_url( '/' )) . '"><i class="td-icon-logout"></i>' . " " . __td('Logout', TD_THEME_NAME) . '</a>
                        </li>
                 </ul>';
        } else {

            echo '<ul class="top-header-menu td_ul_login"><li class="menu-item"><a class="td-login-modal-js menu-item" href="#login-form" data-effect="mpf-td-login-effect">' . __td('Sign in / Join', TD_THEME_NAME) . '</a><span class="td-sp-ico-login td_sp_login_ico_style"></span></li></ul>';
        }
    }//end login window



if (td_util::get_option('tds_top_menu') != 'hide') {
    //shows top menu
    wp_nav_menu(array(
        'theme_location' => 'top-menu',
        'menu_class' => 'top-header-menu',
        'fallback_cb' => 'td_wp_top_menu',
        'container_class' => 'menu-top-container'
    ));

    //if no top menu is set show link to create new menu
    function td_wp_top_menu()
    {
        echo '<ul class="top-header-menu">';
        echo '<li class="menu-item-first"><a href="' . esc_url(home_url('/')) . 'wp-admin/nav-menus.php?action=locations">Click here - to select or create a menu</a></li>';
        echo '</ul>';
    }
}

?>
</div>

جهت اطلاعتون من کد خط ۴۰ تا ۵۰ را اضافه کردم که این کد پس از بررسی اینکه آیا کاربر وارد سایت شده یا خیر یک لینک حاوی تعداد اعلام های جدید رو نمایش میده استایل های این بخش inline هستن و می تونید براحتی ویرایششون کنید و در خط ۶۳ هم تغییر کوچکی ایجاد کردم تا لینک آواتار بجای صفحه نویسنده به صفحه پروفایل کاربر در بادی پرسی تغییر کند.

موفق باشید 🙂

محمد عنبرستانیمشاهده نوشته ها

Avatar for محمد عنبرستانی

توسعه دهنده و طراح وب و همچنین مهندس عمران هستم و البته به موضوعاتی مثل برندینگ، طراحی آرم (لوگو)، رسم و نقاشی، معماری و سایر هنر های بصری علاقه مند هستم! اینجا سعی می کنم اطلاعات مفید و آموزنده که در زمینه کاریم و علایقم هستن رو با شما به اشتراک بگذارم.

بدون دیدگاه

دیدگاهتان را بنویسید