برگزیده های پرشین تولز

نمایش دسته های یک پست تایپ

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
سلام
من یه پست تایپ درست کردم به اسم blog با ادرس simple.com/blog
حالا من کل مطالب این پست تایپ رو با فایلی به نام archive-blog.php نشون می دم.
بعد من یه تاکسونومی هم درست کردم با نام blog و یه فایل با نام taxonomy-blog.php درست کردم ولی هیچی نشون نمی ده(404) و میره index رو نشو می ده مثلا وقتی آدرس دستی رو می زنم به شکل زیر
simple.com/blog/photoshop نشون نمی ده درصورتی که مطلب داره این دسته
چه طوری باید دسته های پست تایپم رو نشون بدم؟
کمک کنید واقعا کلافه شدم
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
زمانی که شما پست تایپ جدیدی اضافه میکنید لازم هست یکبار تنظیمات پیوندهای یکتارو ذخیره کنید تا برگه ها از حالت 404 خارج بشن
برای این منظور به قسمت تنظیمات> پیوندهای یکتا رفته و یکبار پیوندهای یکتا رو ذخیره کنید
مشکل به همین سادگی برطرف میشه
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
زمانی که شما پست تایپ جدیدی اضافه میکنید لازم هست یکبار تنظیمات پیوندهای یکتارو ذخیره کنید تا برگه ها از حالت 404 خارج بشن
برای این منظور به قسمت تنظیمات> پیوندهای یکتا رفته و یکبار پیوندهای یکتا رو ذخیره کنید
مشکل به همین سادگی برطرف میشه
اون کار رو انجام داده بودم تغییری نکرد منم فک می کنم مشکل از پیوندهای یکتاست
راهی به نظرتون میرسه
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
اگر با انجام اون کار مشکل حل نشد احتمالا مشکل از نحوه ساخت پست تایپ هست
کدهایی که با اون پست تایپ و تاکسونومی رو میسازید قرار بدید
(این رو هم تست بفرمایید : از قسمت پنل وردپرس به یکی از تاکسونامی هایی که ساختیتد و داخلش پست قرار دادید برید و نمایش رو بزنید )
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
اگر با انجام اون کار مشکل حل نشد احتمالا مشکل از نحوه ساخت پست تایپ هست
کدهایی که با اون پست تایپ و تاکسونومی رو میسازید قرار بدید
(این رو هم تست بفرمایید : از قسمت پنل وردپرس به یکی از تاکسونامی هایی که ساختیتد و داخلش پست قرار دادید برید و نمایش رو بزنید )
بالا گفتم کل پست تایپ رو با archive-blog.php نشون می دم و ادامه مطلب پست تایپ هم می تونم نشون بدم با single-blog.php مشکل من اینه که وقتی در تاکسونومی blog دسته درست می کنم و در مطلب از اون دسته استفاده می کنم مثلا دسته اموزش من می خوام وقتی دسته آموزش رو انتخاب کرد مطلبی که دسته آموزش داره رو نشون بده

این هم از کدهای بنده
پست تایپ:
PHP:
add_action( 'init', 'codex_Theme_init' );
function codex_Theme_init() {
    $labels = array(
        'name'               => _x( 'Blog', 'post type general name', 'your-plugin-textdomain' ),
        'singular_name'      => _x( 'Blog', 'post type singular name', 'your-plugin-textdomain' ),
        'menu_name'          => _x( 'Blogs', 'admin menu', 'your-plugin-textdomain' ),
        'name_admin_bar'     => _x( 'Blog', 'add new on admin bar', 'your-plugin-textdomain' ),
        'add_new'            => _x( 'نوشته جدید', 'book', 'your-plugin-textdomain' ),
        'add_new_item'       => __( 'افزودن نوشته جدید', 'your-plugin-textdomain' ),
        'new_item'           => __( 'نوشته جدید', 'your-plugin-textdomain' ),
        'edit_item'          => __( 'ویرایش نوشته', 'your-plugin-textdomain' ),
        'view_item'          => __( 'نمایش نوشته', 'your-plugin-textdomain' ),
        'all_items'          => __( 'همه نوشته ها', 'your-plugin-textdomain' ),
        'search_items'       => __( 'جستجوی نوشته ها', 'your-plugin-textdomain' ),
        'parent_item_colon'  => __( 'نوشته های مادر', 'your-plugin-textdomain' ),
        'not_found'          => __( 'نوشته ی وبلاگی یافت نشد.', 'your-plugin-textdomain' ),
        'not_found_in_trash' => __( 'نوشته ی وبلاگی در زباله دان یافت نشد.', 'your-plugin-textdomain' )
    );
    $args = array(
        'labels'             => $labels,
        'description'        => __( 'نوشته های وبلاگ', 'your-plugin-textdomain' ),
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'blog' ),
        'capability_type'    => 'post',
        'taxonomies'          => array( 'blog', 'post_tag' ),
        'has_archive'        => true,
        'menu_icon'          =>'dashicons-welcome-learn-more',
        'hierarchical'       => false,
        'taxonomies' => array( 'blog', 'post_tag' ),
        'menu_position'      => 5,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
    );
   
    //exclude_from_search

    register_post_type( 'blog', $args );
}

کد های تاکسونومی:
کد:
function my_taxonomies_blog() {
    $labels = array(
        'name'              => _x( 'دسته بندی وبلاگ', 'taxonomy general name' ),
        'singular_name'     => _x( 'دسته بندی وبلاگ', 'taxonomy singular name' ),
        'search_items'      => __( 'جست و جوی دسته بندی وبلاگ' ),
        'all_items'         => __( 'همه دسته بندی وبلاگ' ),
        'parent_item'       => __( 'دسته بندی وبلاگ مادر' ),
        'parent_item_colon' => __( 'دسته بندی وبلاگ مادر:' ),
        'edit_item'         => __( 'ویرایش دسته بندی وبلاگ' ),
        'update_item'       => __( 'تغییر دسته بندی وبلاگ' ),
        'add_new_item'      => __( 'افزودن دسته بندی جدید وبلاگ' ),
        'new_item_name'     => __( 'دسته بندی جدید وبلاگ' ),
        'menu_name'         => __( 'دسته بندی وبلاگ' ),
    );
    $args = array(
        'labels'        => $labels,
        'hierarchical' => true,
        'slug'           => 'blog',
    );
    register_taxonomy( 'blog', 'blog', $args );
   
}
add_action( 'init', 'my_taxonomies_blog', 0 );
ببینید شاید جایی اشتباه کردم
یه فایل با نام taxonomy-blog.php هم برای نمایش دسته های تاکسونومی درست کردم ولی اینو نمی خونه
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
الان هم اسم تاکسونامی رو blog گذاشتید و هم اسم پست تایپ :|
اسم تاکسونامی رو عوض کنید
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
بسیار بسیار عجیبه! من این رو هم قبلا تست زدم ولی فک کنم پیوند های یکتا رو ذخیره نکردم :D:rolleyes:
سپاس این درست شد و نام تاکسونومی رو به blog_category تغییر دادم من می خواستم تو آدرس بار فقط blog دیده شه عیب این بود ولی من یه اشکال دیگه هم دارم اگه این رو هم راهنمایی کنید نور الا نور میشه
من یه کد تونستم پیدا کنم که صفحه ساز هست یعنی می تونی به تعداد دلخواه دسته دلخواهت رو انتخاب کنی و در صفحه مورد نظرت نمایش بدی من مشکلم اینته که این از دسته پیش فرض وردپرس دسته های رو فراخونی می کنه چطوری کاری کنم که از تاکسونومی blog_category من فراخوانی کنه؟
کد:
if ( ! isset( $content_width ) ) $content_width = 838;
function et_homepage_builder_page() {
    $builder_page = add_theme_page( esc_html__( 'صفحه ساز فانوس', 'fanoos' ), esc_html__( 'صفحه ساز فانوس', 'fanoos' ), 'switch_themes', 'et_fanoos_homepage_builder', 'et_homepage_builder_interface' );
    if ( isset( $_GET['page'] ) && 'et_fanoos_homepage_builder' === $_GET['page'] && isset( $_POST['et_hb_action'] ) )
        et_homepage_builder_save_data();
    add_action( "admin_print_scripts-{$builder_page}", 'et_homepage_builder_admin_js' );
    add_action( "admin_print_styles-{$builder_page}", 'et_homepage_builder_admin_css' );
}
add_action( 'admin_menu', 'et_homepage_builder_page' );
if ( ! function_exists( 'et_homepage_builder_admin_js' ) ) :
function et_homepage_builder_admin_js() {
    wp_enqueue_script( 'jquery-ui-sortable' );
    wp_enqueue_script( 'et-homepage-builder-js', get_template_directory_uri() . '/js/et_homepage_builder_admin.js', array( 'jquery' ), '1.0', true );
    wp_localize_script( 'et-homepage-builder-js', 'et_hb_options', array(
        'ajaxurl'     => admin_url( 'admin-ajax.php' ),
        'et_hb_nonce' => wp_create_nonce( 'et_hb_nonce' ),
    ) );
}
endif;
if ( ! function_exists( 'et_homepage_builder_admin_css' ) ) :
function et_homepage_builder_admin_css() {
    wp_enqueue_style( 'et-homepage-builder', get_template_directory_uri() . '/css/et_homepage_builder_admin.css' );
}
endif;
function et_nexus_add_module(){
    if ( ! wp_verify_nonce( $_POST['et_hb_nonce'], 'et_hb_nonce' ) )
        die(-1);
    $et_module_type    = sanitize_text_field( $_POST['et_module_type'] );
    $et_modules_number = (int) $_POST['et_modules_number'];
    et_generate_module( $et_module_type, $et_modules_number );
    die();
}
add_action( 'wp_ajax_et_add_module', 'et_nexus_add_module' );
function et_recent_module_add_posts() {
    if ( ! wp_verify_nonce( $_POST['et_hb_nonce'], 'et_hb_nonce' ) )
        die(-1);
    $category = $_POST['post_type'];
    $posts_number = $_POST['number'];
    $offset = $_POST['offset'];
    $args = array(
        'post_type' => 'blog',
        'ignore_sticky_posts' => 1,
        'posts_per_page'      => (int) $posts_number,
        'offset'              => (int) $offset,
        'post_status'         => 'publish',
    );
    if ( 'all' !== $category )
        $args['blog'] = (int) $category;
    $et_recent_posts_query = new WP_Query( apply_filters( 'et_recent_posts_query_args', $args ) );
    if ( $et_recent_posts_query->have_posts() ) :
        while ( $et_recent_posts_query->have_posts() ) : $et_recent_posts_query->the_post();
            get_template_part( 'includes/recent_module', 'home' );
        endwhile;
    endif;
    wp_reset_postdata();
    die();
}
add_action( 'wp_ajax_et_recent_module_add_posts', 'et_recent_module_add_posts' );
add_action( 'wp_ajax_nopriv_et_recent_module_add_posts', 'et_recent_module_add_posts' );
if ( ! function_exists( 'et_nexus_get_modules' ) ) :
function et_nexus_get_modules() {
    $all_categories = get_categories( 'hide_empty=1' );
    $site_cats['all'] = __( 'تمام موضوعات', 'fanoos' );
    foreach ( $all_categories as $category ) {
        $site_cats[$category->cat_ID] = $category->cat_name;
        $cats_ids[] = $category->cat_ID;
    }
    $all_categories = $site_cats;
    unset( $all_categories['all'] );
    $modules = array(
    'post_type' => 'blog',
        'recent_posts' => array(
            'category' => array(
                'title'      => __( 'انتخاب موضوع', 'fanoos' ),
                'type'       => 'select',
                'options'    => $site_cats,
                'validation' => 'number',
            )/*,
            'number' => array(
                'title'      => __( 'تعداد قابل نمایش', 'fanoos' ),
                'type'       => 'input',
                'validation' => 'number',
                'std'        => 3,
            ),*/
        ),
    );
    return apply_filters( 'et_nexus_homepage_modules', $modules );
}
endif;
if ( ! function_exists( 'et_generate_module' ) ) :
function et_generate_module( $type, $modules_number, $settings = array() ) {
    $options_slug = 'modules[' . $modules_number . ']';
    $et_nexus_modules = et_nexus_get_modules();
    echo '<div class="et_module et_module_' . esc_attr( $type ) . '">';
    if ( 'recent_posts' === $type )
        $et_module_name = __( 'آخرین پست ها', 'fanoos' );
    echo '    <h3>' . esc_html( $et_module_name ) . '</h3>';
    echo '    <input type="hidden" name="' . $options_slug . '[type]" value="' . esc_attr( $type ) . '" />';
    foreach( $et_nexus_modules[$type] as $module_key => $module_option ) {
        echo '<h4>' . esc_html( $module_option['title'] ) . '</h4>';
        if ( 'select' === $module_option['type'] ) {
            printf( '<select name="%s">',
                esc_attr( $options_slug . "[{$module_key}]" )
            );
            foreach( $module_option['options'] as $option_key => $option )
                printf( '<option value="%s" %s>%s</option>',
                    esc_attr( $option_key ),
                    ( isset( $settings[$module_key] ) ? selected( $settings[$module_key], $option_key, false ) : '' ),
                    esc_html( $option )
                );
            echo '</select>';
        } elseif ( 'input' === $module_option['type'] ) {
            $default = isset( $module_option['std'] ) && ! isset( $settings[$module_key] ) ? $module_option['std'] : '';

            printf( '<input name="%s" type="text" value="%s" />',
                esc_attr( $options_slug . "[{$module_key}]" ),
                ( isset( $settings[$module_key] ) ? esc_attr( $settings[$module_key] ) : $default )
            );
        } elseif ( 'checkboxes' === $module_option['type'] ) {
            foreach( $module_option['options'] as $option_key => $option ) {
                printf( '<label class="et_hb_checkboxes"><input name="%s[]" type="checkbox" value="%s" %s /> %s</label>',
                    esc_attr( $options_slug . "[{$module_key}]" ),
                    esc_attr( $option_key ),
                    ( isset( $settings[$module_key] ) ? checked( in_array( $option_key, $settings[$module_key] ), true , false ) : '' ),
                    esc_html( $option )
                );
            }
        }
    }
    echo '    <a href="#" class="et_delete_module">' . __( 'حذف این دسته', 'fanoos' ) . '</a>';
    echo '</div> <!-- .et_module -->';
}
endif;
if ( ! function_exists( 'et_homepage_builder_save_data' ) ) :
function et_homepage_builder_save_data() {
    if ( ! current_user_can( 'switch_themes' ) )
        return;
    check_admin_referer( 'et_hb_nonce' );
    if ( isset( $_POST['modules'] ) ) {
        update_option( 'et_homepage_builder_modules', $_POST['modules'] );
        echo '    <div id="setting-error-settings_updated" class="updated settings-error">
                    <p><strong>' . __( 'تنظیمات ذخیره شد.', 'fanoos' ) . '</strong></p></div>';
    } else {
        delete_option( 'et_homepage_builder_modules' );
    }
}
endif;
if ( ! function_exists( 'et_homepage_builder_interface' ) ) :
function et_homepage_builder_interface() {
    $all_modules = get_option( 'et_homepage_builder_modules' );
?>
    <div class="wrap">
        <h2 id="et_page_title"><?php esc_html_e( 'تظیمات صفحه اصلی', 'fanoos' ); ?></h2>
        <div id="et_modules_select">
            <a href="#" data-type="recent_posts"><?php esc_html_e( 'اضافه کردن آخرین پست های یک دسته خاص', 'fanoos' ); ?></a>                  
        </div>
        <form id="et_homepage_builder" method="post">
            <div id="et_modules">
            <?php
            if ( $all_modules ) {
                $i = 1;
                foreach ( $all_modules as $module ) {
                    et_generate_module( $module['type'], $i, $module );
                    $i++;
                }
            }
            ?>
            </div>
            <?php submit_button(); ?>
            <input type="hidden" name="et_hb_action" value="save_homepage_layout" />
            <?php wp_nonce_field( 'et_hb_nonce' ); ?>
        </form>
    </div>
<?php }
endif;  
?>
اگه اینو راهنمایی کنید ممنون میشم:general406:
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
برای دریافت پاسخ مناسب بهتر بود یک تاپیک جداگانه باز میکردید
کدهارو من توی قالب پیشفرض اضافه کردم اما چیز خاصی در قسمت صفحه ساز دید ه نشد شاید کدها ناقص هستند
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
برای دریافت پاسخ مناسب بهتر بود یک تاپیک جداگانه باز میکردید
کدهارو من توی قالب پیشفرض اضافه کردم اما چیز خاصی در قسمت صفحه ساز دید ه نشد شاید کدها ناقص هستند
یه تایک ایجاد شد لطفا اینجا پاسخ بدید :
http://forum.persiantools.com/threads/راهنمایی-در-تغییر-یک-کد.747072/
یله کد های دیگه هم داره
فک کنم از این قسمت هست:
کد:
$all_categories = get_categories( 'hide_empty=1' );
به شکل زیر نوشتم ولی خالی میاره
کد:
$all_categories = get_terms( 'blog_category', 'hide_empty=1' );
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
از این کد برای نمایش تاکسونامی ها استفاده کنید
PHP:
 $terms = get_terms( 'my_taxonomy' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     echo '<ul>';
     foreach ( $terms as $term ) {
       echo '<li>' . $term->name . '</li>';
       
     }
     echo '</ul>';
}
به جای my_taxonomy نام تاکسونامی خود را وارد نمایید
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
از این کد برای نمایش تاکسونامی ها استفاده کنید
PHP:
 $terms = get_terms( 'my_taxonomy' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     echo '<ul>';
     foreach ( $terms as $term ) {
       echo '<li>' . $term->name . '</li>';
      
     }
     echo '</ul>';
}
به جای my_taxonomy نام تاکسونامی خود را وارد نمایید
ببخشید من متوجه نشدم که کد های شما رو با چه قسمت هایی جا گذاری کنم می شه شما زحمت بکشید کدی که دادین رو تو کدای بالا جاگذاری کنید.
کل فایل های مربوط به صفحه ساز رو براتون ارسال کردم لطفا یه نگاه بندازید ببینید با توجه به پست تایپ و تاکسونومی بنده می تونید کمکم کنید
 

فایل های ضمیمه

  • myfile.zip
    4.5 KB · نمایش ها: 3
بالا