пользовательская страница WordPress - PullRequest
0 голосов
/ 19 апреля 2010

Я бы хотел реализовать пользовательскую страницу пост-поиска в WordPress. По сути, я использую AJAX для вызова этой страницы, которой будет передан идентификатор сообщения, и получения определенных данных из этого сообщения.

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

Итак, я попытался создать страницу

<?php
$args=array(
       'p'=>'77'
    );
    $friends = new WP_Query($args);
?>
<?php if ($friends->have_posts()) : the_post(); ?>

    <?php the_title(); ?>
    <?php the_content(); ?>

<?php else: ?>
    <p>Sorry, no posts are available.</p>
<?php endif; ?>

Но это не работает, так как он не загружается в функции wp для обработки запроса.

Заранее спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Я думаю, я думаю, что вы пытаетесь сделать, и кажется, что вы делаете это неправильно. Не создавайте «новую страницу» в интерфейсе администратора. То, что вы хотите сделать, это подать файл (JSON, фрагмент XHTML, что угодно) в ваш Javascript и включить в него данные WP, верно? Я знаю эту проблему, использовав ее в некоторых моих плагинах.

Есть две техники:

(1) Это то, что вам нужно сделать: создать новый плагин (просто свободный php-файл в wp-плагинах с тем же форматным заголовком, что и другие плагины там). Напишите свою функцию по следующим направлениям:

function mydatapage(){
    if (...$_SERVER['REQUEST_URI'] == the one I am using ...) {
        $args=array(
            'p'=>'77'
        );
        $friends = new WP_Query($args);
        if ($friends->have_posts()) :
            the_post();
            the_title();
            the_content();
        else:>?
<p>Sorry, no posts are available.</p>
        <?php endif;
        die();
    } //else do nothing and leave WP to serve the page normally
}
//Crucially:
add_action('init', 'mydatapage');

Что делает, так это выполняет поиск при загрузке страниц, чтобы увидеть, совпадает ли URL с тем, который вы хотите перехватить и использовать для отправки ваших пользовательских данных. Если это так, вы отправляете данные / файл / что хотите и выходите (умираете).

Дайте крик, если вы хотите более подробный синтаксис. Это немного грязно, но хорошо работает.

(2) Прямой вызов вашего файла плагина. WP будет обрабатывать только файлы, которые еще не существуют, а остальное оставит Apache. Это означает, что вы можете создать файл плагина и вызывать его напрямую, используя ... / wp-plugin / myfile.php url. Вам нужно будет включить некоторые из основных файлов WP, чтобы заставить работать такие вещи, как WP_Query. Это немного более хрупкий метод.

1 голос
/ 19 апреля 2010

Вы должны включить файл wp-blog-header.php.Если страница, которую вы создаете, находится в папке вашей темы, то вы должны поместить что-то подобное в верхнюю часть кода

<?php require_once ('../../../wp-blog-header.php');?>

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