2013-08-17 3 views
0

Я создаю сайт, который не является блогом, и я использую wordpress для своей CMS - короче говоря, я даже не использую цикл wordpress.Wordpress Custom Pages или что-то еще?

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

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

Например:

// index.php 

<?php get_header(); ?> 

// Some file, like index_content.php imported into here 
<?php get_custom_page_content(); ?> 

<?php get_footer(); ?> 


// about.php 

<?php get_header(); ?> 

// Some file, like about_content.php imported into here 
<?php get_custom_page_content(); ?> 

<?php get_footer(); ?> 

кажется очень противоречивы, потому что, если я просто сделать новый .php файл, как я объясню ниже, это не умаляет CMS все вместе. Я просто редактирую их самостоятельно, даже не войдя в панель администратора, так как я не вижу ничего, чтобы управлять этими файлами для меня без прямой ссылки на мои пункты меню или что-то еще. Почему бы мне тогда просто @ не включить все и полностью избавиться от Wordpress. Я должен что-то упустить.

Долго и коротко это, я понятия не имею, как структурировать это и от моих попыток исследования, не знаю, что я ищу, чтобы ответить на это.

Как я могу создать описанный выше сценарий или просто так просто создать новый файл .php для каждой именованной страницы и @including что я хочу?

Я не хочу попасть в плохие практики.

ответ

1

1) Вы можете использовать WordPress по умолчанию Page Templates. У вас будут файлы page-index.php и page-about.php, и они будут отображаться в виде шаблонов в метатеге атрибутов.

2) Или вы можете полагаться на пользовательские мета-поля и поля, создавая свой собственный мета-ящик, как и атрибуты по умолчанию. Это делается с помощью add_meta_box, get_post_meta и update_post_meta. Проверьте following results в ответах WordPress.
Но, длинный рассказ короткий, даже зная, как использовать его, я предпочитаю использовать Advanced Custom Fields, чтобы справиться с этим, так как это хорошо сохранившийся и многофункциональный плагин.

С пользовательских мета-поле на месте, просто выбрать один из предварительно сконфигурированных списка (index, about) и в вашем файле используйте page.php тему:

global $post; 
$include = get_post_meta($post->ID, 'include_file', true); 
get_template_part('content', $include); 

include_file является настраиваемое поле, которое содержит выпадающее меню выбор. И вы сами справляетесь с update_post_meta или в поле, созданное с помощью ACF.

get_template_path() - это связанная функция WP и в этом примере будет искать файл example.com/wp-content/themes/YOUR-THEME/content-index.php или example.com/wp-content/themes/YOUR-THEME/content-about.php.


Способ 1 является прямым. Метод 2 позволяет значительно уточнить детали. Можно использовать комбинацию обоих.

+0

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