Как сделать статическую страницу?

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Вопрос такой, как создать статическую страницу, но программно что она не была типом материала «Страницы сайта» чтоб там например страницу регистрации создать, есть подобные плагины, но они в основном работают через шерткоды , мне даже не плагины интересны а сама функция что то типа add_theme_page() нужно только чтоб для пользовательской части сайта а не админки, подскажите плиз

Создай свой первый сайт на WordPress

vovasik
Оцените автора
Добавить комментарий

  1. tiaurus

    Не совсем понятен вопрос. WordPress — это система для управления сайтом на основе PHP. Для создания в ней статической страницы есть специальный функционал: Страницы — Добавить новую. У такой страницы есть своя ссылка, есть все возможности для редактирования, управления. Чем этот функционал не устраивает?

    Не хотите создавать страницу средствами WordPress? Тогда просто создайте в любом редакторе HTML-файл, и добавьте ссылку на него в карту сайта.

    Ответить
  2. vovasik автор

    Да нет я скажу зачем, знаю я не что страницу создать можно , но такая возможность не нужна как раз )) есть например задача сделать страницу регистрации или альтернативную страницу логина или просто страницу приветствия чтоб там была форма с нужными полями минималистичный html и стили, короче не хочу чтоб эту страницу можно было из админки как то перебить, можно конечно её в админке просто скрыть, но было бы круто чтобы создать страницу программно как например в друпал hook_menu это делает

    
    function page(){
          $items['hello_world']=array(
             'title'=>'test',
             'page callback'=>'page_content',
             'access callback'=>TRUE,
             'type'=> MENU_NORMAL_ITEM
      );
      return $items;
    }
     
    function page_content(){
         echo "test-content";
    }

    тупо создается url site.ru/hello_world с title test и на которой будет написано test-content и все собственно, нужен плагин, просто включаешь появляется страница hello_world не нужен выключаешь, страница исчезает,никакие записи в базе не создаются (почти), файл тоже создавать не нужно. Вот интересует можно ли подобное в вордпрессе сделать?

    Ответить
    1. tiaurus

      Все равно не понял, что вы хотите. Зачем плагин, когда в движке уже есть такая возможность? Публикуешь страницу — она появляется, переносишь в черновики — она исчезает. И без всяких плагинов. Ну а вид странице можно придать какой угодно, если задать ей шаблон. Так что я не понимаю, зачем вы велосипед изобретаете, когда уже готовый стоит в гараже?

      Ответить
  3. vovasik автор

    хорошо, опустим вопрос зачем это нужно, но была старая версия плагина buddypress и там как минимум страницы register/ ,activity/ и members/ именно таким образом как я описал создавались, ну это же круто было ещё одна фитча

    Ответить
  4. Артем

    Я понимаю, что 3 года прошло, но я тоже задался таким вопросом, как автор поста. Поэтому поделюсь своим опытом, вдруг кому-нибудь поможет.
    Видимо такой вопрос «Как программно создать страницу в вордпресс» возникает у друпалистов.
    Я плотно работал с друпалом, а сейчас осваиваю вордпресс.
    Попробую пояснить что имел ввиду автор поста.
    Задача, создать свой модуль (плагин), который при установке создает в системе страницу, а точнее резервирует URL, например /checkout. При обращении пользователем по этому URL должна отработать определенная функция плагина, например вывести форму для оформления заказа. В друпале для этого есть hook_menu.
    Насколько я понял в вордпрессе просто другая логика, т.е. все строиться на шорткодах.
    Но создать страницу можно командой «wp_insert_post», повесить ее на какой-нибудь хук, а в содержимое страницы положить нужный шорткод.
    Было бы неплохо услышать вариант профессионалов, т.к. я еще только стою у порога вордпресс :)

    Ответить
  5. vovasik

    если бы вопрос был только в подмене котента , заголовка или еще чего то это пол беды можно как то так сделать

    function prefix_rewrite_rule() {
        add_rewrite_rule( 'movie/([^/]+)/photos', 'index.php?movie=$matches[1]&photos=yes', 'top' );
    }
    add_action( 'init', 'prefix_rewrite_rule' );
    
    function detect(){
    	if ( get_query_var( 'photos' ) ){
    		add_filter('the_content', 'add_text_to_content');		
    	}
    }
    
    add_action( 'init', 'detect');
    
    function add_text_to_content($content){
    	$out = "Новый контент";
    	return $out;
    }
    

    ну или похожим образом, но мне же нужен был , даже не знаю что — какой то стейт в url, не зависимы от страниц или еще чего-то, ну грубо говоря, чтоб можно было что душе угодно вывести.

    Я конечно тоже уже не помню , но вроде идея три года назад в этом была.

    Ну это короче все совсем не как в друпале , даже в тех примерах что я выше написал , как минимум нужно flush_rewrite_rules() вызывать, короче архитектура другая немного, от части я то что я хотел сделать можно наверное через тот wp rest api сделать будет, когда он наконец появится, либо хуком в wp-admin/admin-ajax.php?action=xxx все что угодно вставить хоть джейсон.

    Ответить
  6. vovasik

    да пиздец, код тоже порезало, так что ладно n-wp уже тоже не тот торт

    Ответить
    1. tiaurus

      Прежде чем материться, вы бы научились закрывать теги программного кода.

      Ответить
  7. vovasik

    черт бы с ним что с , хотя его все же порезало потому что я точно помню что закрыл , проблема в том что в о втором фрейме полностью стерло весь html который и это скорее всего не проблема закрытых тегов , а просто отфильтровало как недопустимый код

    Ответить
    1. tiaurus

      Вы закрыли тег pre два раза. Движок обработал код правильно — закрыл программный код там, где он завершался первый раз, все остальное посчитал простым текстом, вырезав из него недопустимый код.

      Я советую вам воздержаться на этом сайте от употребление мата, а так же проверять текст на грамматические и пунктуационные ошибки перед публикацией. Ваш комментарий поправил в меру своих возможностей.

      Повторите код с примером применения (не функций, а их использования) — он не опубликовался.

      Ответить
  8. vovasik

    1) ну там вобщем ничего интересного особо не было, думаю так все понятно .
    2) за мат то , тоже ничего не скажу, можете порезать .
    P.S. за три года сайт сильно изменился и мне кажется раньше красивее было , да и как то более уютно , плюс цвета какие то ядовиты , это к слову про то что n-wp не тот

    Ответить