Shoresh Mostafa
3 سال پیش توسط Shoresh Mostafa مطرح شد
5 پاسخ

مدیریت نویسنده ها در وردپرس

سلام خدمت اساتید محترم ،
بنده میخوام یه ویژگی رو اعمال ******** به مشکل خوردم . میخوام اعضای تیم نویسندگان یه سایت رو توی بخش تیم ما ایجاد کنم با نام و نام خانوادگیشونو بیوگرافی بعد همزمان بیام این هارو در هر پست وردپرس تعیین کنم که نویسنده کدوم عضو تیمه و در صفحه پست نام نام خانوادگی اواتار و بیوگرافیشونم نمایش بدم . ولی افزونه کاملی که همه رو انجام بده پیدا نکردم . چیزی که به ذهنم رسیده اینه که با استفاده از افزونه team showcase بخش تیم رو ایجاد کنم بعد با استفاذه از کاستوم فیلد ها توی پست اعضای تیم رو بگیرم . فقط بلد نیستم چجوری . اگه درسته که بفرمایید چجوری . اگه نه که راه حل لطف کنید ممنون میشم . یا یه افزونه کامل . با تشکر از اساتید گرامی


ثبت پرسش جدید
محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

این افزونه رو نصب کنید
https://wordpress.org/plugins/cmb2/
در پوشه قالب خودتون یک پوشه به نام function بسازید و یک فایل به نام f-setting.php
و در داخلش این کد رو قرار بدید

<?php
/**
 * This snippet has been updated to reflect the official supporting of options pages by CMB2
 * in version 2.2.5.
 *
 * If you are using the old version of the options-page registration,
 * it is recommended you swtich to this method.
 */
add_action( 'cmb2_admin_init', 'ofoghweb_register_theme_options_metabox' );
/**
 * Hook in and register a metabox to handle a theme options page and adds a menu item.
 */
function ofoghweb_register_theme_options_metabox() {

    /**
     * Registers options page menu item and form.
     */
    $cmb = new_cmb2_box( array(
        'id'           => 'ofoghweb_option_metabox',
        'title'        => esc_html__( 'تنظیمات وبسایت', 'ofoghweb' ),
        'object_types' => array( 'options-page' ),

        /*
         * The following parameters are specific to the options-page box
         * Several of these parameters are passed along to add_menu_page()/add_submenu_page().
         */

        'option_key'      => 'ofoghweb_options', // The option key and admin menu page slug.
        // 'icon_url'        => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty.
        // 'menu_title'      => esc_html__( 'Options', 'ofoghweb' ), // Falls back to 'title' (above).
        // 'parent_slug'     => 'themes.php', // Make options page a submenu item of the themes menu.
        // 'capability'      => 'manage_options', // Cap required to view options-page.
        // 'position'        => 1, // Menu position. Only applicable if 'parent_slug' is left empty.
        // 'admin_menu_hook' => 'network_admin_menu', // 'network_admin_menu' to add network-level options page.
        // 'display_cb'      => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
        // 'save_button'     => esc_html__( 'Save Theme Options', 'ofoghweb' ), // The text for the options-page save button. Defaults to 'Save'.
    ) );

    /*
     * Options fields ids only need
     * to be unique within this box.
     * Prefix is not needed.
     */

// ========================================= index-features.php   تنظیمات ویژگی های  ما   =====================================//
    $yourwebsite_features = $cmb->add_field( array(
    'id'          => 'yourwebsite_features',
    'type'        => 'group',
    'repeatable'  => true, 
    'options'     => array(
        'group_title'       => __( 'تنظیمات تیم ما', 'cmb2' ), 
        'closed'         => true, 
    ),
) );

$cmb->add_group_field( $yourwebsite_features, array(
    'name' => 'نام اعضای تیم',
    'id'   => 'team_name',
    'type' => 'text',
) );
$cmb->add_group_field( $yourwebsite_features, array(
    'name' => 'تصویر ',
    'id'   => 'item_image',
    'type' => 'file',
) );   

}

/**
 * Wrapper function around cmb2_get_option
 * @since  0.1.0
 * @param  string $key     Options array key
 * @param  mixed  $default Optional default value
 * @return mixed           Option value
 */
function ofoghweb_get_option( $key = '', $default = false ) {
    if ( function_exists( 'cmb2_get_option' ) ) {
        // Use cmb2_get_option as it passes through some key filters.
        return cmb2_get_option( 'ofoghweb_options', $key, $default );
    }

    // Fallback to get_option if CMB2 is not loaded yet.
    $opts = get_option( 'ofoghweb_options', $default );

    $val = $default;

    if ( 'all' == $key ) {
        $val = $opts;
    } elseif ( is_array( $opts ) && array_key_exists( $key, $opts ) && false !== $opts[ $key ] ) {
        $val = $opts[ $key ];
    }

    return $val;
}

بعد از افزودن کد باید این فایل رو در functions.php فراخونی کنیم , این کد رو در functios.php قرار بدید

require 'functions/f-settings.php';

بعد وارد پنل مدیریت بشید و منوی تنظیمات سفارشی رو بزنید در اونجا چندتا اعضای تیم درست کنید و عکسشونو بزارید

حالا بخش نمایش اعضای تیم
برای اینکار شما باید html داشته باشید و مقادیر رو از cmb2 بگیرید

این یک نمونه کد هست شما باید html خودتون رو قرار بدین در صفحه ای که می خواهید نشون بدید , مثلا در صفحه اصلی , اول مقادیر رو از cmb2 گرفتم بعد حلقه زدم


  <!--===========================================================  تنظیمات ویژگی های  ما =================================================-->
        <?php $yourwebsite_features =ofoghweb_get_option('yourwebsite_features');
         if(!empty($yourwebsite_features)){ 
             foreach($yourwebsite_features as $item){ ?>
        <div class="col-5 col-md-3 col-lg-2 m-2 m-md-3 m-lg-3 p-2 feature-box">
            <img src="<?php echo $item['item_image']; ?>" class="img-fluid">
            <p class="m-auto"><?php echo $item['team_name']; ?></p>
        </div>

        <?php };}; ?>

محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

سلام
شما می تونید برای همچین بخش های سفارشی مثل تیم ما که تو خود وردپرس نیست از افزونه cmb2 استفاده کنید
و یک منو به منو های ادمین وردپرس اضافه می شه که میتونی تمام تیم ما و اطلاعات ریز رو مدیریت کنی
همپنین با افزونه cmb2 میتونی برای هر نوشته در صفحه ایجاد مقاله مشخص کنی نام نویسنده اطلاعاتش چیه و در صفحه مقالات نشون بدی
اگر می خواهی توضیح بیشتر بدم
@m.shoresh77


Shoresh Mostafa
تخصص : FRONT-END
@m.shoresh77 3 سال پیش مطرح شد
0

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


محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

این افزونه رو نصب کنید
https://wordpress.org/plugins/cmb2/
در پوشه قالب خودتون یک پوشه به نام function بسازید و یک فایل به نام f-setting.php
و در داخلش این کد رو قرار بدید

<?php
/**
 * This snippet has been updated to reflect the official supporting of options pages by CMB2
 * in version 2.2.5.
 *
 * If you are using the old version of the options-page registration,
 * it is recommended you swtich to this method.
 */
add_action( 'cmb2_admin_init', 'ofoghweb_register_theme_options_metabox' );
/**
 * Hook in and register a metabox to handle a theme options page and adds a menu item.
 */
function ofoghweb_register_theme_options_metabox() {

    /**
     * Registers options page menu item and form.
     */
    $cmb = new_cmb2_box( array(
        'id'           => 'ofoghweb_option_metabox',
        'title'        => esc_html__( 'تنظیمات وبسایت', 'ofoghweb' ),
        'object_types' => array( 'options-page' ),

        /*
         * The following parameters are specific to the options-page box
         * Several of these parameters are passed along to add_menu_page()/add_submenu_page().
         */

        'option_key'      => 'ofoghweb_options', // The option key and admin menu page slug.
        // 'icon_url'        => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty.
        // 'menu_title'      => esc_html__( 'Options', 'ofoghweb' ), // Falls back to 'title' (above).
        // 'parent_slug'     => 'themes.php', // Make options page a submenu item of the themes menu.
        // 'capability'      => 'manage_options', // Cap required to view options-page.
        // 'position'        => 1, // Menu position. Only applicable if 'parent_slug' is left empty.
        // 'admin_menu_hook' => 'network_admin_menu', // 'network_admin_menu' to add network-level options page.
        // 'display_cb'      => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
        // 'save_button'     => esc_html__( 'Save Theme Options', 'ofoghweb' ), // The text for the options-page save button. Defaults to 'Save'.
    ) );

    /*
     * Options fields ids only need
     * to be unique within this box.
     * Prefix is not needed.
     */

// ========================================= index-features.php   تنظیمات ویژگی های  ما   =====================================//
    $yourwebsite_features = $cmb->add_field( array(
    'id'          => 'yourwebsite_features',
    'type'        => 'group',
    'repeatable'  => true, 
    'options'     => array(
        'group_title'       => __( 'تنظیمات تیم ما', 'cmb2' ), 
        'closed'         => true, 
    ),
) );

$cmb->add_group_field( $yourwebsite_features, array(
    'name' => 'نام اعضای تیم',
    'id'   => 'team_name',
    'type' => 'text',
) );
$cmb->add_group_field( $yourwebsite_features, array(
    'name' => 'تصویر ',
    'id'   => 'item_image',
    'type' => 'file',
) );   

}

/**
 * Wrapper function around cmb2_get_option
 * @since  0.1.0
 * @param  string $key     Options array key
 * @param  mixed  $default Optional default value
 * @return mixed           Option value
 */
function ofoghweb_get_option( $key = '', $default = false ) {
    if ( function_exists( 'cmb2_get_option' ) ) {
        // Use cmb2_get_option as it passes through some key filters.
        return cmb2_get_option( 'ofoghweb_options', $key, $default );
    }

    // Fallback to get_option if CMB2 is not loaded yet.
    $opts = get_option( 'ofoghweb_options', $default );

    $val = $default;

    if ( 'all' == $key ) {
        $val = $opts;
    } elseif ( is_array( $opts ) && array_key_exists( $key, $opts ) && false !== $opts[ $key ] ) {
        $val = $opts[ $key ];
    }

    return $val;
}

بعد از افزودن کد باید این فایل رو در functions.php فراخونی کنیم , این کد رو در functios.php قرار بدید

require 'functions/f-settings.php';

بعد وارد پنل مدیریت بشید و منوی تنظیمات سفارشی رو بزنید در اونجا چندتا اعضای تیم درست کنید و عکسشونو بزارید

حالا بخش نمایش اعضای تیم
برای اینکار شما باید html داشته باشید و مقادیر رو از cmb2 بگیرید

این یک نمونه کد هست شما باید html خودتون رو قرار بدین در صفحه ای که می خواهید نشون بدید , مثلا در صفحه اصلی , اول مقادیر رو از cmb2 گرفتم بعد حلقه زدم


  <!--===========================================================  تنظیمات ویژگی های  ما =================================================-->
        <?php $yourwebsite_features =ofoghweb_get_option('yourwebsite_features');
         if(!empty($yourwebsite_features)){ 
             foreach($yourwebsite_features as $item){ ?>
        <div class="col-5 col-md-3 col-lg-2 m-2 m-md-3 m-lg-3 p-2 feature-box">
            <img src="<?php echo $item['item_image']; ?>" class="img-fluid">
            <p class="m-auto"><?php echo $item['team_name']; ?></p>
        </div>

        <?php };}; ?>

Shoresh Mostafa
تخصص : FRONT-END
@m.shoresh77 3 سال پیش مطرح شد
0

خییییلی ممنون لطف کردیذ


محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

موفق باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام