post

Пропадают страницы из меню

WordPress 2.6.5

Написал тему, однако появилась такая проблема: в меню не отображаются некоторые страницы, после авторизации в качестве админа всё работает как надо, после выхода – снова часть страниц не видно

Проверил, все опубликованы, личных страниц нет

При установке других тем всё работает как положено, отсюда делаю вывод, что что-то не так с самой темой, есть подозрение, что забыл объявить (упомянуть) какие-то вещи, которые объявить было надо

На сайте нет записей, только страницы…

Саму тему делал максимально простой – index.php, commments.php, style.css (плюс ещё 2 отдельных с хаками под MSIE и FireFox соответственно)… ну и конечно, папка с картинками… Таким образом, всё по сути лежит в одном файле – index.php

Выкладываю код (некоторые вещи вставлены жёстко, без виджетов и т.д., так сделано опять же для упрощения):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head profile="http://gmpg.org/xfn/11">
    <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
    <title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />

    <script  language="JavaScript" type="text/javascript">
    <!--

    if  ((navigator.appCodeName == "Mozilla")  && (navigator.userAgent.indexOf ("Opera") == -1))  {
        document.write ('<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style_ff.css" type="text/css" media="screen" />');
    };

    if  ((navigator.appName == "Microsoft Internet Explorer") && (navigator.userAgent.indexOf ("Opera") == -1))  {
        document.write ('<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style_ie.css" type="text/css" media="screen" />');
    };

    //-->
    </script>
    <?php wp_head(); ?>

</head>

<body>

<div id="container">

    <div id="header">
    </div>
    
    <div id="wrapper">
        
        <div id="content">
    
<?php if (have_posts()) : ?>
        
    <?php while (have_posts()) : the_post(); ?>
            
        <div class="post" id="post-<?php the_ID(); ?>">
            <h2><?php the_title(); ?></h2>
            <div class="entry">
                <?php the_content(); ?>
            </div>
        </div>

    <?php comments_template(); ?>

    <?php endwhile; ?>

    <?php else : ?>

        <div class="post">
        <h2>Ошибка</h2>
        <p align="center">Извините, страница не найдена</p>
        </div>

<?php endif; ?>

<br /><br />

        </div>
    </div>


        <div style="position:absolute; top:180px; left:273px; "> текст </div>

    <div id="sidebar">

    <div id="menu-top">
    </div>

    <div id="menu">
    <h2>Меню</h2>
    <ul>
        <?php wp_list_pages('title_li=&exclude=36'); ?>
    </ul>
    </div>

    <div id="menu-bottom">
    </div>

    <div id="sidebar-text">
        <strong>Телефоны:</strong><br>
        000-00-00<br><br>
        <strong>ICQ:</strong><br><img src="http://status.icq.com/online.gif?icq=000000000&img=5" width=16 height=16>&nbsp; 000-000-000<br><br>
        <a href="addfavorite" onClick="window.external.AddFavorite('http://site.ru/', 'описание');return false;">добавить в избранное</a>
    </div>

    </div>


</div>

</body>

</html>

Как видите, это попытка применить вордпресс как cms в максимально упрощённой форме

Буду рад любым советам!

Права на управление sape, рекламой, магазином и т.п. – отдельным людям

ЦЕЛЬ:

Создать новую способность, которая определяла бы доступ к пункту меню e-Commerce для изменения настроек магазина. По аналогии можно будет создавать способности для доступа к меню любых плагинов (AdSence, Sape и т.д.) и поручать управление ими отдельным пользователям

http://forum.maxsite.org/viewtopic.php?id=4203

Спустя пару ночей и несколько пива всё оказалось предельно простым и не надо было даже разбирать базу данных ))

Итак,

РЕШЕНИЕ:

0. Устанавливаем Role Manager

1. В меню Users (Пользователи) – Capabilities (Способности) создаём новую способность, например, show ecommerce
Role Manager превращает её в вид Show Ecommerce (в списке способностей и ролей Пользователи – Роли) и show_ecommerce (для вызова из php)

2. В файле wp-shopping-cart.php плагина e-Commerce ищем строки
add_menu_page(TXT_WPSC_ECOMMERCE, TXT_WPSC_ECOMMERCE, 7, $base_page);
add_submenu_page($base_page,TXT_WPSC_PRODUCTS, TXT_WPSC_PRODUCTS, 7, ‘wp-shopping-cart/display-items.php’);
и т.п.

7 – это обозначение уровня пользователя (видимо, использовалось в ранних версиях вместо ролей, подробнее тут: http://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table)

вместо 7 можно указать любую способность, что мы и делаем:

add_menu_page(TXT_WPSC_ECOMMERCE, TXT_WPSC_ECOMMERCE, show_ecommerce, $base_page);
add_submenu_page($base_page,TXT_WPSC_PRODUCTS, TXT_WPSC_PRODUCTS, show_ecommerce, ‘wp-shopping-cart/display-items.php’);

3. Создаём нового пользователя и активируем данную способность в разделе Users (Пользователи) – Roles (Роли). Внимание! Эта способность нестандартна для wordpress, поэтому её нужно включить и для Администратора ))

Всё!

Теперь наполнять магазин новыми товарами сможет отдельный человек, которому даже не нужно знать, что такое вордпресс, рубрики, рсс и прочие "страшности"… он просто кликает мышкой на фото и указывает цены =р

Как это использовать для управления сапой, рекламой и т.п.? Точно также! Ищем в файлах плагина строки add_menu_page или add_submenu_page, четвёртым из пяти параметров идёт установка прав доступа, см. п.1

Надеюсь, это пригодится кому-либо ещё, если что – пишите!

P.S. Если материал данного совета покажется кому-либо интересным для публикации на своём ресурсе – буду безмерно рад! Только не забудьте спросить у меня моё имя для указания копирайтов, плз… ))

Создание capabilities для управления настройками плагина

БАЗА:

wp 2.3.2
плагин WP Shopping Cart (E-Commerce) v3.5.1 (http://www.instinct.co.nz/) – онлайн-магазин
плагин Role Manager v2.2.2 (http://www.im-web-gefunden.de/wordpress-plugins/role-manager/) – управление ролями и способностями

ОПИСАНИЕ СИТУАЦИИ:

Управление настройками плагина WP Shopping Cart (E-Commerce) осуществляется через созданное им в админ-панели меню e-Commerce (Доска объявлений Написать Управление Комментарии Ссылки Внешний вид Плагины Пользователи Настройки e-Commerce)

В wp существует набор предопределённых способностей (http://codex.wordpress.org/Roles_and_Capabilities#Capabilities) для формирования ролей пользователей. Установлен плагин Role Manager для комфортного управления ролями и способностями

ЦЕЛЬ:

Создать новую способность, которая определяла бы доступ к пункту меню e-Commerce для изменения настроек магазина. По аналогии можно будет создавать способности для доступа к меню любых плагинов (AdSence, Sape и т.д.) и поручать управление ими отдельным пользователям

ЗАТРУДНЕНИЯ:

Пытался выяснить, где определён перечень уже существующих способностей (типа switch_themes, edit_plugins, moderate_comments и т.п.). Оказалось, что они упоминаются в файлах
/wp-admin/includes/schema.php
/wp-admin/menu.php
и в базе данных wp, таблица wp-options, строки wp_user_roles (создаётся при инсталляции wp) и IWG_RoleMan_CapList (создаётся при инсталляции плагина Role Manager)

Пример строки из menu.php:
$menu[25] = array(__(‘Presentation’), ‘switch_themes’, ‘themes.php’);

Т.е. нужно создать что-то типа
array(__(‘e-Commerce’), ‘e_commerce’, ‘admin.php?page=wp-shopping-cart/display-log.php’);

Role Manager позволяет задать имя (e_commerce) для новой способности. Но совершенно неясно, где надо прописывать "псевдоним" (e-Commerce), который отображается в настройках Role Manager (название, понятное для человека) и путь

Думал сделать по аналогии со стандартными capabilities. Фраза Delete Published Pages ("псевдоним" способности удалять опубликованные страницы) отображается в списке способностей в настройках Role Manager, но… эта фраза – Delete Published Pages – не содержится ни в одном из файлов в папке WordPress со всеми подпапками! Не нашёл я её и в базе данных… логически не понимаю, как такое может быть %-p

В строке IWG_RoleMan_CapList таблицы wp_options базы вордпресса лежит:
a:37:{i:0;s:16:"activate_plugins";i:1;s:12:"create_users";i:2;s:19:"delete_others_pages";i:3;s:19:"delete_others_posts";i:4;s:12:"delete_pages";i:5;s:12:"delete_posts";i:6;s:20:"delete_private_pages";
ну и так далее… в строке wp_users_roles что-то типа того, т.е. никакого объявления путей – сплошная вордпрессовская интуиция )))

БУДУ РАД ЛЮБЫМ ИДЕЯМ! =Р
ЗАРАНЕЕ СПАСИБО!

P.S. ПОХОЖИЕ СИТУАЦИИ:

http://wordpress.org/support/topic/159762

Anonymous
Отправить
Ответ на: