przepisywanie adresu URL — niestandardowy typ postu link kanoniczny / paginacja przekierowująca do katalogu głównego
Odziedziczyłem istniejącą witrynę i ostatnio poproszono mnie o wprowadzenie pewnych zmian.
„Zmienili nazwę” domyślnego postu na „najnowsze wiadomości”, używając tego „my_new_default_post_type”:
<?php
add_action( 'init', 'my_new_default_post_type', 1 );
function my_new_default_post_type() {
register_post_type( 'post', array(
'labels' => array(
'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),
),
'public' => true,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'map_meta_cap' => true,
'hierarchical' => false,
'rewrite' => array('slug' => 'latest-news','with_front' => false),
'query_var' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
) );
}
?>
Można je zobaczyć na standardowej stronie tutaj:
z drugą stroną paginacji tutaj:
Strona 2/
Kliknięcie posta ładuje go tutaj:
Dodałem kilka nowych niestandardowych typów postów, na przykład „oferty korporacyjne”. Kod do dodania tego niestandardowego typu postu to:
<?php
add_action('init', 'corporate_deals_register');
function corporate_deals_register() {
$labels = array(
'name' => _x('Corporate Deals', 'post type general name'),
'singular_name' => _x('Corporate Deals', 'post type singular name'),
'add_new_item' => __('Add New Briefing'),
'edit_item' => __('Edit briefing'),
'new_item' => __('New briefing'),
'view_item' => __('View briefing'),
'search_items' => __('Search Corporate Deals'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => false,
'show_ui' => true,
'capability_type' => 'post',
'taxonomies' => array( 'category' ),
'hierarchical' => false,
'publicly_queriable' => false,
'show_ui' => true,
'show_in_nav_menus' => false,
'exclude_from_search' => false,
'menu_icon' => 'dashicons-welcome-add-page', // Icon Path
'menu_position' => 5,
'show_in_menu' => 'blogs_menu',
'query_var' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions' ),
);
register_post_type( 'corporate-deals' , $args );
}
?>
Możesz zobaczyć te wymienione tutaj:
i klikając w jeden tutaj:
/gateley-corporate-zespół-doradza-w-firmach-nabywaniu-of-kiddy-partners/
Jednakże… kiedy próbujesz wyświetlić drugą stronę paginacji, tutaj:
/Strona 2/
przekierowuje do:
Przeszukałem wysoko i nisko wszelkie przekierowania lub reguły przepisywania, ale nie mogę ich znaleźć.
Jedną rzeczą, którą zauważyłem, jest to, że jeśli dodam:
'rewrite' => array('slug' => 'latest-news','with_front' => false),
do mojej niestandardowej deklaracji pocztowej (tj. przepisanie „umowy korporacyjne” na „najnowsze wiadomości”), wtedy przekierowanie nie nastąpi.
Każda pomoc bardzo mile widziana. Z góry dziękuję.
Dodatkowo
Kod budujący listę postów to:
<?php // Corporate Deals
function paginatedcorporatedeals_func( $atts ) {
extract( shortcode_atts( array(
'pageid' => '{$pageid}',
'title' => '{$title}',
'showcontent' => '{$showcontent}',
'newsurl' => '{$newsurl}',
'postmeta' => '{$postmeta}'
), $atts ) );
$output;
global $post;
$ws = 1;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type'=>'corporate-deals',
//'order'=>'ASC',
'posts_per_page' => 16,
'paged' => $paged,
);
$slug = the_slug();
query_posts($args);
// global $wp_query;
// $postcount = $wp_query->found_posts;
$count=0;
if(have_posts()) {
$divider="yes";
$featuredimg = 'date';
$truncate = 250;
while (have_posts()) : the_post();
global $post;
$thetitle = get_the_title($post->ID);
require get_template_directory() . '/assets/inc/plugins/vc-intergration/modules/shortcode-templates/media-list.php';
$output .="<hr>";
$count++;
endwhile;
$output .= "<div class="vc_row clearfix"><div class="white-bar">".page_pagination()."</div></div>";
wp_reset_query();
}
return $output;
}
add_shortcode( 'paginatedcorporatedeals', 'paginatedcorporatedeals_func' );
?>