رفتن به مطلب

راهنمایی در تغییر یک کد


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

سلام به همه

من یه کد دارم که صفحه ساز هست یعنی می تونی به تعداد دلخواه دسته دلخواهت رو انتخاب کنی و در صفحه مورد نظرت نمایش بدی من مشکلم اینه که این از دسته پیش فرض وردپرس دسته های رو فراخونی می کنه چطوری کاری کنم که از تاکسونومی شخصیم یعنی 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;
?>

کمک کنید

لینک به ارسال

بجای


$all_categories = get_categories( 'hide_empty=1' );

بگذارید


$all_categories = get_terms( 'blog', 'hide_empty=1' );

آیا منظور از blog همون اسم تاکسونومی هست چون چیزی نمیازه

وقتی هم اسم تاکسونومی رو وارد می کنم یه فیلد خالی نشون میده

لینک به ارسال

blog اسم تاکسونامیتونه این کدتون دست خورده است و مشکل داره

مثلا یکجا


$category = $_POST['post_type'];

قرار داده که اشتباهه

کدی که باهاش دسته بندیهاتون رو بدون مشکل احضار می کنه رو ویرایش کنید و فقط کاری که عرض شد رو روش انجام بدید نمایش می ده

اطلاعات بیشتر در مورد تابع رو هم بخونید

https://codex.wordpress.org/Function_Reference/get_terms

لینک به ارسال
blog اسم تاکسونامیتونه این کدتون دست خورده است و مشکل داره مثلا یکجا
 $category = $_POST['post_type']; 

قرار داده که اشتباهه کدی که باهاش دسته بندیهاتون رو بدون مشکل احضار می کنه رو ویرایش کنید و فقط کاری که عرض شد رو روش انجام بدید نمایش می ده اطلاعات بیشتر در مورد تابع رو هم بخونید https://codex.wordpress.org/Function_Reference/get_terms

من از پست تایپ خودم به اسم blog

و تاکسونومی شخصی خودم به اسم blog_category استفاده می کنم

گفتم شاید کمکی بکنه

اینم کدی کامل که دسته بندی پیش فرض رو نشون میده


<?php
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['category'];
$posts_number = $_POST['number'];
$offset = $_POST['offset'];
$args = array(
'ignore_sticky_posts' => 1,
'posts_per_page' => (int) $posts_number,
'offset' => (int) $offset,
'post_status' => 'publish',
);
if ( 'all' !== $category )
$args['cat'] = (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(
'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;
?>

ویرایش شده توسط reza_yki
لینک به ارسال

برای اینکه مطالب پست تایپ blog و تاکسونامی blog_category : (تست کنید)

<?php

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['category'];

$posts_number = $_POST['number'];

$offset = $_POST['offset'];

$args = array(

'post_type' => array('blog'),

'ignore_sticky_posts' => 1,

'posts_per_page' => (int) $posts_number,

'offset' => (int) $offset,

'post_status' => 'publish',

);

if ( 'all' !== $category )

$args['cat'] = (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_terms( 'blog_category','hide_empty=1' );

$site_cats['all'] = __( 'تمام موضوعات', 'fanoos' );

foreach ( $all_categories as $term ) {

$site_cats[$term->term_id] = $term->name;

$cats_ids[] = $term->term_id;

}

$all_categories = $site_cats;

unset( $all_categories['all'] );

$modules = array(

'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;

?>

لینک به ارسال
برای اینکه مطالب پست تایپ blog و تاکسونامی blog_category : (تست کنید)
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['category']; $posts_number = $_POST['number']; $offset = $_POST['offset']; $args = array( 'post_type' => array('blog'), 'ignore_sticky_posts' => 1, 'posts_per_page' => (int) $posts_number, 'offset' => (int) $offset, 'post_status' => 'publish', ); if ( 'all' !== $category ) $args['cat'] = (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_terms( 'blog_category','hide_empty=1' ); $site_cats['all'] = __( 'تمام موضوعات', 'fanoos' ); foreach ( $all_categories as $term ) { $site_cats[$term->term_id] = $term->name; $cats_ids[] = $term->term_id; } $all_categories = $site_cats; unset( $all_categories['all'] ); $modules = array( '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 '

'; if ( 'recent_posts' === $type ) $et_module_name = __( 'آخرین پست ها', 'fanoos' ); echo '

' . esc_html( $et_module_name ) . '

'; echo ' '; foreach( $et_nexus_modules[$type] as $module_key => $module_option ) { echo '

' . esc_html( $module_option['title'] ) . '

'; if ( 'select' === $module_option['type'] ) { printf( '', esc_attr( $options_slug . "[{$module_key}]" ) ); foreach( $module_option['options'] as $option_key => $option ) printf( '%s', esc_attr( $option_key ), ( isset( $settings[$module_key] ) ? selected( $settings[$module_key], $option_key, false ) : '' ), esc_html( $option ) ); echo ''; } elseif ( 'input' === $module_option['type'] ) { $default = isset( $module_option['std'] ) && ! isset( $settings[$module_key] ) ? $module_option['std'] : ''; printf( '', 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( ' %s', 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 ' ' . __( 'حذف این دسته', 'fanoos' ) . ''; echo '

{C}'; } 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 '

' . __( 'تنظیمات ذخیره شد.', 'fanoos' ) . '

'; } 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' ); ?>

نتونستم فقط با یه کلیک خشک و خالی از شما تشکر کنم

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

ویرایش شده توسط reza_yki
لینک به ارسال

ببخشید حالا یه مشکل دیگه، تو قالب مطالب انتخابی رو نمیاره میشه اینم یه زحمت بکشید و نگاه کنید

<div class="box-Other">
<?php
$all_modules = get_option( 'et_homepage_builder_modules' );if ( $all_modules ) :
foreach ( $all_modules as $module ) {
switch ( $module['type'] ) {
case 'recent_posts' : ?>
<div
class="box-post-other">
<div
class="haed-post-other"></div>
<?php
$args = array(
'offset' =>'0',
'posts_per_page' => 1,
);
if ( 'all' !== $module['category'] )
$args['cat'] = (int) $module['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(); ?>
<div
class="box-img-other">
<?php the_post_thumbnail('Special'); ?>
<h3> <a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></h3>
</div>
<?php endwhile;
endif;
wp_reset_postdata();
?>
<ul>
<?php
$my_query = new WP_Query(array(
'order' =>'DESC',
'posts_per_page' => 6,
'cat' => (int) $module['category'],
'offset' =>'1',
'no_found_rows' => 1,
));
?>
<?php
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;
?>
<li>
<?php the_post_thumbnail('smallimg'); ?>
<a
href="<?php the_permalink(); ?>">
<h4>
<?php the_title(); ?>
</h4>
</a></li>
<?php $et_category = 'all' === $module['category']
?
: get_cat_name( $module['category'] );
?>
<?php $mycategory_id = get_cat_ID( $echo=$et_category); $mycategory_link = get_category_link( $mycategory_id ); endwhile; ?>
<div class="title-haed-other"> <a href="<?php echo esc_url( $mycategory_link ); ?>">
<?php
$et_category = 'all' === $module['category']
?
: get_cat_name( $module['category'] );printf(
$et_category
);
?>
</a></div>
</ul>
</div>
<?php
break;
}
}elseif ( current_user_can( 'publish_posts' ) ) : // if no modules set ?>
<?php
endif;
?>
</div>

ویرایش شده توسط reza_yki
لینک به ارسال

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


$my_query = new WP_Query(array(
'order' =>'DESC',
'posts_per_page' => 6,
'cat' => (int) $module['category'],
'offset' =>'1',
'no_found_rows' => 1,
));
?>

و تغییر بدید به


$my_query = new WP_Query(array(
'post_type' => array('blog'),
'order' =>'DESC',
'posts_per_page' => 6,
'tax_query' => array(
array(
'taxonomy' => 'blog',
'field' => 'term_id',
'terms' =>(int) $module['category'],
),
),
'offset' =>'1',
'no_found_rows' => 1,
));
?>

لینک به ارسال
این رو هم پیدا کنید تو کدتون
 $my_query = new WP_Query(array( 'order' =>'DESC', 'posts_per_page' => 6, 'cat' => (int) $module['category'], 'offset' =>'1', 'no_found_rows' => 1, )); ?> 

و تغییر بدید به

 $my_query = new WP_Query(array( 'post_type' => array('blog'), 'order' =>'DESC', 'posts_per_page' => 6, 'tax_query' => array( array( 'taxonomy' => 'blog', 'field' => 'term_id', 'terms' =>(int) $module['category'], ), ), 'offset' =>'1', 'no_found_rows' => 1, )); ?> 

استاد شرمنده یه زحمت دیگه دارم، من دو تا حلقه برای نمایش دارم یکی رو که شما تو قسمت قبلی درستش کردید، این یکی رو چطوری بنویسم:


$args = array(
'offset' =>'0',
'posts_per_page' => 1,
);

لینک به ارسال

بجای


$args = array(
'offset' =>'0',
'posts_per_page' => 1,
);
if ( 'all' !== $module['category'] )
$args['cat'] = (int) $module['category'];

بگذارید


$args = array(
'post_type' => array('blog'),
'offset' =>'0',
'posts_per_page' => 1,
);
if ( 'all' !== $module['category'] )
$args['tax_query'] = array(
array(
'taxonomy' => 'blog_category',
'field' => 'term_id',
'terms' =>(int) $module['category'],
),
);

در ضمن توی کد قبلی هم بجای


'taxonomy' => 'blog_category',

نوشتم


'taxonomy' => 'blog',

که اصلاحش کنید

لینک به ارسال

بجای


$args = array(
'offset' =>'0',
'posts_per_page' => 1,
);
if ( 'all' !== $module['category'] )
$args['cat'] = (int) $module['category'];

بگذارید


$args = array(
'post_type' => array('blog'),
'offset' =>'0',
'posts_per_page' => 1,
);
if ( 'all' !== $module['category'] )
$args['tax_query'] = array(
array(
'taxonomy' => 'blog_category',
'field' => 'term_id',
'terms' =>(int) $module['category'],
),
);

در ضمن توی کد قبلی هم بجای


'taxonomy' => 'blog_category',

نوشتم


'taxonomy' => 'blog',

که اصلاحش کنید

با صبر وپاسخاتون منو شرمنده کردید سپاس

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

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