因此,我正在爲客戶端開發一個網站,其中的主頁像一個頁面的滾動程序一樣構建,但我還需要在單個主頁之外的其他頁面的功能。我爲這些部分構建了自定義帖子類型,並使用此代碼在主頁上顯示它們。顯示來自自定義帖子類型和頁面模板的內容
<?php query_posts(array('post_type'=>'homepage', 'posts_per_page' => 1000, 'orderby' => 'menu_order', 'order' => 'ASC')); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<?php
global $post;
$slug = $post->post_name;
locate_template(
array(
"template-$slug.php",
'template-main.php'
), true
);
?>
<?php endwhile; endif; ?>
所以,你可以看到,這是自動拉內容,並使用基於崗位塞頁面模板顯示出來,但是,我需要讓我的客戶端基礎上選擇了一個頁面模板顯示內容一個下拉菜單,我用這段代碼創建了一個顯示頁面模板的下拉式UI。
add_action('add_meta_boxes', 'add_custom_page_attributes_meta_box');
function add_custom_page_attributes_meta_box(){
global $post;
if ('page' != $post->post_type && post_type_supports($post->post_type, 'page-attributes')) {
add_meta_box('custompageparentdiv', __('Template'), 'custom_page_attributes_meta_box', NULL, 'side', 'core');
}
}
function custom_page_attributes_meta_box($post) {
$template = get_post_meta($post->ID, '_wp_page_template', 1); ?>
<select name="page_template" id="page_template">
<?php $default_title = apply_filters('default_page_template_title', __('Default Template'), 'meta-box'); ?>
<option value="default"><?php echo esc_html($default_title); ?></option>
<?php page_template_dropdown($template); ?>
</select><?php
}
add_action('save_post', 'save_custom_page_attributes_meta_box');
function save_custom_page_attributes_meta_box($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) return;
if (! current_user_can('edit_post', $post_id)) return;
if (! empty($_POST['page_template']) && get_post_type($post_id) != 'page') {
update_post_meta($post_id, '_wp_page_template', $_POST['page_template']);
}
}
因此,我現在面臨的問題是如何根據所選頁面模板在我的主頁中顯示所有自定義帖子。
非常感謝! J
所以基本上你只是想知道如何在主要博客頁面上顯示自定義帖子,爲您提供主頁? –
不,我需要知道如何根據模板選擇器製作自定義帖子類型顯示內容。現在,這會將所有內容拉入主頁面,但內容會根據由slug確定的頁面模板顯示。我寧願我的客戶端能夠選擇它如何從模板選擇器顯示。 –