This following code is custom post type:
add_action( 'init', 'wpt_technology_posttype' );
function wpt_technology_posttype() {
register_post_type( 'technology',
array(
'labels' => array(
'name' => __( 'Technology Providers List' ),
'singular_name' => __( 'Technology' ),
'add_new' => __( 'Add Techonology Provider' ),
'add_new_item' => __( 'Add New Technology' ),
'edit_item' => __( 'Edit Technology' ),
'new_item' => __( 'Add New Technology' ),
'view_item' => __( 'View Technology' ),
'search_items' => __( 'Search Technology' ),
'not_found' => __( 'No News found' ),
'not_found_in_trash' => __( 'No Technology found in trash' )
),
'public' => true,
'has_archive' =>'true',
'hierarchical' => true,
'supports' => array( 'title','thumbnail','editor', 'comments' ),
'capability_type' => 'post',
'rewrite' => array("slug" => "techno_type"), // Permalinks format
'menu_position' => 22,
)
);
register_taxonomy('techno_type', 'technology',
array('hierarchical' => true, 'label' => 'Add New Technology', 'query_var' => true, 'rewrite' => true));
}
I created the page name archive-technology.php. I wrote script but page not found. How to display post in archive page.I also used following code in the functions.php
:
function custom_post_archive( $query ){
if ( is_post_type_archive('technology') ) {
include 'archive-technology.php';
}
}
add_action('pre_get_posts','custom_post_archive');
This following code is custom post type:
add_action( 'init', 'wpt_technology_posttype' );
function wpt_technology_posttype() {
register_post_type( 'technology',
array(
'labels' => array(
'name' => __( 'Technology Providers List' ),
'singular_name' => __( 'Technology' ),
'add_new' => __( 'Add Techonology Provider' ),
'add_new_item' => __( 'Add New Technology' ),
'edit_item' => __( 'Edit Technology' ),
'new_item' => __( 'Add New Technology' ),
'view_item' => __( 'View Technology' ),
'search_items' => __( 'Search Technology' ),
'not_found' => __( 'No News found' ),
'not_found_in_trash' => __( 'No Technology found in trash' )
),
'public' => true,
'has_archive' =>'true',
'hierarchical' => true,
'supports' => array( 'title','thumbnail','editor', 'comments' ),
'capability_type' => 'post',
'rewrite' => array("slug" => "techno_type"), // Permalinks format
'menu_position' => 22,
)
);
register_taxonomy('techno_type', 'technology',
array('hierarchical' => true, 'label' => 'Add New Technology', 'query_var' => true, 'rewrite' => true));
}
I created the page name archive-technology.php. I wrote script but page not found. How to display post in archive page.I also used following code in the functions.php
:
function custom_post_archive( $query ){
if ( is_post_type_archive('technology') ) {
include 'archive-technology.php';
}
}
add_action('pre_get_posts','custom_post_archive');
Share
Improve this question
edited Dec 19, 2016 at 6:18
Dave Romsey
17.9k11 gold badges56 silver badges70 bronze badges
asked Dec 19, 2016 at 4:52
wploverwplover
11 silver badge1 bronze badge
3
- Please format your code properly. Also, did you flush the permalinks? – fuxia ♦ Commented Dec 19, 2016 at 5:06
- When I used this code. I was change permalinks, But could not find the solution. Where is my coding problem? can you give any solution ? – wplover Commented Dec 20, 2016 at 7:47
- Have you tried "archive_template" ? codex.wordpress/Plugin_API/Filter_Reference/… – Nur Hasan Commented Dec 20, 2016 at 9:53
1 Answer
Reset to default 5I don't think you need to use the hook pre_get_posts
on this. Remove that part from functions.php
. Then just put the archive-technology.php
in themes root directory. Then go to you Permalinks settings page and hit Save Changes button. WordPress will need to regenerate the .htaccess
file to use new archive template.