• Что то типа [Include ID=xxx]

    По аналогии как вставляются коды всяких плагинов, например для e-Commerce — [wpsc_products product_id=’1′]

    Как точно также вставить в какую то запись или страницу содержимое другой записи или страницы (по ее ID) ?

    Например есть страница с таблицей с описанием свойств некоторой группы товаров, чтобы на странице каждого товара не повторять этот код, хотелось бы просто в конце страницы каждого товара вставить код типа [insert text frome page id=545]
    И соответственно если потом поменять текст надо в этом описании, то только в одном месте это придется делать, а не на всех страницах.

    Вопрос наверное совсем ламерский и по идее это как то же элементарно должно делаться, но извините, пока только учусь 🙂

    Если более широко, то вообще использовать какие то стандартные описанные объекты имеющиеся на данном сайте в wordpress, и где вообще посмотреть список таких объектов и синтаксис ?

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Читайте усиленно кодекс — там весь api. частично на русском языке. если уж совсем не разберетесь, то подскажу как сделать.

    Блин, это так сложно что ли ?

    Думал достаточно просто [] с нужным словом заветным и ID внутри поставить…

    Вы должны четко и однозначно объяснить, что вы хотите в итоге получить —
    1. Вы хотите модифицировать шаблон, добавив код, таким образом, что при написании любой статьи (страницы) он будет автоматически добавлятся внизу (вверху) вашей статьи (страницы)
    2. Вы хотите объединять несколько статей (страниц) в одну.
    3. Или вы хотите, при написании статьи в админке добавлять в нее тег, который автоматически будет заменяться на нужное вам значение (как например вставить дату)
    Как определитесь напишите + шаблон, который вы используете

    Да я совсем кажется простое же хочу, странно что непонятно, по моему это просто каждому надо на любом сайте WordPress.

    Ну есть статьи и есть страницы если в терминах wordpress.

    Я создаю новую запись или страницу, пишу там какой то текст, вставляю картинки или что то еще и также хотел бы вставить в текст все содержимое другой уже ранее когда то созданной записи или страницы, но только не скопировать содержимое тупо руками, а вставить какой то сокращенный код в текст с указанием ID (типа «ссылки») той страницы содержимое которой надо скопировать.
    И так чтобы когда страница будет визуализироваться, то чтобы вместо этого кода с ID из базы вытащилось и подставилось бы содержимое той страницы чье ID указали.
    И соотвественно если на исходной странице что то изменится, то эти изменения также сразу произойдут и на той странице куда мы вставили (при следующем просмотре).
    А если я код этой страницы вставил сразу на 1000 других страниц, то когда исходную обновлю, то сразу на 1000 страницах у меня обновится текст с нее — это же дико удобно !

    По принципу объектного программирования: один объект наследует другой, если я где-то когда-то какой-то текст писал и хочу его целиком вставить на другой странице, то мне не надо его переписывать целиком, а только добавить код указывающий, что вот тут надо вставить текст из записи или со страницы такой то… Можно конечно там дать ссылку, но тут задача другая, надо чтобы текст именно отобразился на той странице куда мы вставили, но при этом чтобы он не был просто продубдирован везде где вставляем, а существовал в базе WordPress в одном экземпляре.

    Не знаю как это еще объяснить более понятно… Ну вот есть плагин кросс-постинга из блога в блог, так вот тут мне надо такое же только внутри одного блога.

    Шаблон имхо тут наверное неважно какой, в любом по идее это должно как то одинаково реализовываться… Тему сейчас ипользую Bombax 1.2.1.

    Крайне не рекомендую этим заниматься — внутри одно сайта дублирование контента!! Я вас уверяю вы сразу получите бан от google — он вас индексировать больше не будет — это очень плохо.

    Читайте документацию google, возможно и другие поисковики так постпают — не проверял

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

    И я не понял причем тут мой сайт и Google — какой такой бан они мне должны дать и за что ? Я что что-то противозаконное хочу ? Что за чушь ? Какая нафиг документация Google, да не уперся мне этот Google ни разу, мне плевать что у них написано в их документации.
    Это мой сайт и я размещаю на нем информацию так как мне удобно !

    Мне не надо сайт раскручивать, получать с него какие то диведенды и вообще совершенно не обязательно его публиковать во всякие там Google, кто это такие Google, я их знать не знаю и знать не хочу 🙂

    Вы по-моему слегка зациклились на поисковых системах, но есть еще сайты которые создаются для людей, а не для поисковиков…

    Посмотрите вот сюда: http://5kitov.ru/catalog/elements.php?ELEMENT1_ID=244

    Это не WordPress, но принцип именно такой же надо сделать…
    Вы видите под описанием товара внизу таблица с товарами из той же группы ?
    Какой бы товар из этой группы Вы не выбрали, внизу будет таже самая таблица всех товаров из этой группы.

    Мне надо реализовать тоже самое, только не для магазина. Чтобы на каждой странице после некоторого отличающегося текста шла одна и таже вставка (содержимое которой просто бралось бы с какой то заранее подготовленной страницы)

    Соответственно когда текст этой подготовленной страницы я изменю, то содержимое вставок на всех страницах измениться также…

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

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

    Это и есть дубль контент. Если у вас закрытый клуб, то возможно можно так поступить. А если вы хотите, чтобы вас в поиске смогли найти, то так поступать не надо. Иначе забвение.

    Ну ладно если вы хотите, можно поступить следующим способом:
    скачивайте плагин wp-exec, он позволяет использовать php код везде — в страницах, постах и тестовых виджетах. Затем читаете вот эту страницу http://codex.wordpress.org/Function_Reference точнее, вам скорее всего надо http://codex.wordpress.org/Function_Reference/get_post — это получать указанный пост
    http://codex.wordpress.org/Function_Reference/get_page
    это получать страницу по id
    И с успехом занимаетесь программированием.))
    Если возникнут сложности, пишите.
    Это мой вариант, как я бы поступил..

    О! Спасибо огромное, кажется это то что надо! Пошел изучать 🙂

    5 китов — это вообще не вордпресс, самописный движок как я понял по коду. У них вывод в шаблон так и выполнен — все «статьи» из одной категории. Если вы не хотите программировать тогда выбирайте другую CMS — их в интернете бесчисленное множество.

    Как точно также вставить в какую то запись или страницу содержимое другой записи или страницы (по ее ID) ?

    Идем в репозитарий плагинов, ищем слово include, находим много всякого, в том числе и плагин Improved Include Page, в описании которого есть нечто, похожее на то, что нам надо: [include-page id=»mypage» more=»]. Ну а дальше надо проверять на подходящесть и совместимость.

    у него тот же механизм if ($page = IIP::get_page($post_id, $type, $status))
    но плагин не рабочий на 3.0.1
    лучше все таки использовать рабочий wp-exec а добавить одну строчку в пост или статью проще простого))

    Хотя можно использовать часть кода из этого плагина

    function get_page($post_id, $type, $status) {
    
    		if (is_numeric($post_id)) {
    			$_page = get_page($post_id);
    		} elseif( is_string($post_id) && function_exists('get_page_by_path')) {
    			$_page = get_page_by_path($post_id);
    		} else {
    			return false;
    		} // end if
    
    		if (isset($_page->post_type)) {
    
    			// addressing  WP 2.5 or better
    			if (in_array($_page->post_status , $status) && in_array($_page->post_type , $type)) {
    				return $_page;
    			} // end if
    		} else {
    
    			// dealing with previous version
    			$status = array_merge($status, array('static'));
    
    			if (in_array($_page->post_status , $status)) {
    				return $_page;
    			} // end if
    		} // end if
    
    		return false;
    	} // end function

    неплохое решение..

    Чего то с wp-exec с первого захода не получилось.

    Активировал wp-exec.
    Вставил в страницу в режиме HTML вот такой код:
    [exec]
    <?php
    $page_id = 2;
    $page_data = get_page( $page_id );
    $content = $page_data->post_content;
    $title = $page_data->post_title;
    echo $page_data->post_content;
    ?>
    [/exec]

    Предполагалось что в этом месте страницы выведется содержимое страницы с ID = 2

    Вывелось: «Parse error: syntax error, unexpected ‘<‘ in /home/site/site/wp-content/plugins/wp-exec-php/wp-exec-php.php(43) : eval()’d code on line 2»

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Тема «Как вставить в страницу содержимое другой страницы ?» закрыта для новых ответов.