глобальный пост содержит страницу вместо поста, в случае нестандартного поста - PullRequest
0 голосов
/ 26 октября 2018

Я определяю URL пользовательского средства просмотра сообщений:

add_action('init', static function() {
    add_rewrite_rule('balls/(.*)', 'index.php?page_id=48&post_name=$matches[1]', 'top'); // 48 is the page to view the post of "balls"
    $GLOBALS['wp']->add_query_var('post_name');
    $GLOBALS['wp_rewrite']->flush_rules(false);
});

, вот как я его регистрирую:

register_post_type('balls', [
    'labels' => [
        'name' => 'balls',
        'singular_name' => 'balls',
        'add_new' => 'new',
        'add_new_item' => 'new',
        'edit_item' => 'edit',
        'new_item' => 'new',
        'view_item' => 'view',
        'search_items' => 'search',
        'not_found' => 'balls not found',
        'parent_item_colon' => '',
        'menu_name' => 'basketballs'
    ],
    'taxonomies' => ['category'],
    'menu_position' => 4,
    'public' => true,
    'query_var' => true,
    'capability_type' => 'post',
    'supports' => ['title', 'editor', 'thumbnail']
]);

, поэтому я по этому адресу:

/balls/name-of-ball

и в виджете:

global $post;

$post->ID равно 48 вместо идентификатора "name-of-ball"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...