wp Custom Post Types
Hi, ich habe mehrere Probleme mit Custom Post Types.
Mein Custom Post Types:
PHP-Code:
<?php
/*
Plugin Name: SP_Mitgliederseite
Plugin URI: http://lugm.de/
Description: <strong>Mitgliederseite</strong> ist zum verwalten der Mitgliederseite für den <a href="lspz.de">Spielmannszug der Stadt Bad Langensalza e.V.</a> erstellt worden.
Version: 10.05.2014
Author: Lutz Müller
Author URI: http://lugm.de/
License: GNU/GPL Version 2 or later
License URI: http://www.gnu.org/licenses/gpl.html
Min WP Version: 3.5
Max WP Version: 3.9
*/
############################################################################################################
add_action( 'init', 'codex_members_init' );
/**
* Register a members post type.
*
* @link http://codex.wordpress.org/Function_Reference/register_post_type
*/
function codex_members_init() {
$labels = array(
'name' => 'Mitgliederseite',
'singular_name' => 'Mitgliederseite ',
'add_new' => 'Seite erstellen',
'add_new_item' => 'Neue Mitgliederseite',
'edit_item' => 'Bearbeite Seite',
'new_item' => 'Neue Mitgliederseite',
'all_items' => 'Alle Mitgliederseiten',
'view' => 'Mitgliederseite ansehen',
'view_item' => 'Seite ansehen',
'search_items' => 'Seiten durchsuchen',
'not_found' => 'Keine Mitgliederseite gefunden',
'not_found_in_trash' => 'Keine Mitgliederseite im Papierkorb',
'parent' => 'Parent Mitgliederseite ',
'parent_item_colon' => 'Home',
'menu_name' => 'Mitgliederseite',
);
$args = array(
'labels' => $labels,
'_builtin' => false,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => false, //array( 'slug' => 'members' , with_font => false ),
'permalink_epmask' => EP_WIKI,
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);
register_post_type( 'members', $args );
}
function my_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'my_rewrite_flush' );
- Nach dem ich nachfolgenden Code in die funktions.php eingetragen habe, werden die Seiten ( Template-Struktur “members” => members.php ) nicht mehr angezeigt. Die Permalink-Struktur ist so
korrekt und wird im Editor so angezeigt (http://lspz.de/lutz/2014/05/04/19uhr) und die Seite wird auch so aufgerufen. Ich lande immer auf der 404 Seite, Datei nicht gefunden.
PHP-Code:
global $wp_rewrite;
$members_structure = '/%author%/%year%/%monthnum%/%day%/%hour%uhr';
$wp_rewrite->add_rewrite_tag("%members%", '([^/]+)', "members=");
$wp_rewrite->add_permastruct('members', $members_structure, false);
############################################################################################################
// Add filter to plugin init function
add_filter('post_type_link', 'members_permalink', 10, 3);
/**
* Register a permalink function.
*
* @link http://shibashake.com/wordpress-theme/custom-post-type-permalinks-part-2
* Adapted from get_permalink function in wp-includes/link-template.php
*/
function members_permalink($permalink, $post_id, $leavename) {
$post = get_post($post_id);
$rewritecode = array(
'%year%',
'%monthnum%',
'%day%',
'%hour%',
'%minute%',
'%second%',
$leavename? '' : '%postname%',
'%post_id%',
'%category%',
'%author%',
$leavename? '' : '%pagename%',
);
if ( '' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) {
$unixtime = strtotime($post->post_date);
$category = '';
if ( strpos($permalink, '%category%') !== false ) {
$cats = get_the_category($post->ID);
if ( $cats ) {
usort($cats, '_usort_terms_by_ID'); // order by ID
$category = $cats[0]->slug;
if ( $parent = $cats[0]->parent )
$category = get_category_parents($parent, false, '/', true) . $category;
}
// show default category in permalinks, without
// having to assign it explicitly
if ( empty($category) ) {
$default_category = get_category( get_option( 'default_category' ) );
$category = is_wp_error( $default_category ) ? '' : $default_category->slug;
}
}
$author = '';
if ( strpos($permalink, '%author%') !== false ) {
$authordata = get_userdata($post->post_author);
$author = $authordata->user_nicename;
}
$date = explode(" ",date('Y m d H i s', $unixtime));
$rewritereplace =
array(
$date[0],
$date[1],
$date[2],
$date[3],
$date[4],
$date[5],
$post->post_name,
$post->ID,
$category,
$author,
$post->post_name,
);
$permalink = str_replace($rewritecode, $rewritereplace, $permalink);
} else { // if they're not using the fancy permalink option
}
return $permalink;
}
- Wie bekommt man die Einstellung im Editor Sichtbarkeit: Passwortgeschützt / Bearbeiten entfernt? Adminimize hat keine Einstellung dafür => Schreiben Einstellungen - Mitgliederseiten.
- Wie kann ich festlegen, dass nur der WYSIWYG-Editor verwendet werden kann?
Nachtrag: Ich habe in der functions.php diesen Eintrag:
PHP-Code:
/**
* Visueller Editor, ""Beim Schreiben den WYSIWYG-Editor nicht benutzen"" ausblenden.
*/
function remove_unwanted_profile_options() {
# Disable visual editor checkbox
global $wp_rich_edit_exists;
$wp_rich_edit_exists = false;
# Disable choice of admin color scheme from profile.php
remove_action('admin_color_scheme_picker', 'admin_color_scheme_picker');
}
add_action('user_edit_form_tag', 'remove_unwanted_profile_options');
Wie kann ich diesen abändern, sodas er nicht für Custom Post Types auswirkt.
Grüße
Geändert von gabischatz (05.05.2014 um 13:48 Uhr)
Grund: Nachtrag hinzugefügt
|