サポート » 使い方全般 » 固定ページの投稿入力からfunctionの関数を呼び出したい

  • 解決済 kazuyoung

    (@kazuyoung)


    固定ページの投稿画面で以下のコードを入力して、カテゴリ一覧を出力しているのですが、
    function.phpの中に書いたページ送りの関数が呼び出せません。

    投稿画面でPHPを使用するために「Exec-PHP」というプラグインを使っております。
    他のページ(◯◯.php)の中ではpaper関数は呼び出せております。

    呼び出すためには、どのように記述したらよいでしょうか。
    現状は以下のように書いております。

    if (function_exists("pagination")) {
    	pagination($additional_loop->max_num_pages);
    }

    投稿画面に入力しているコード全体としては以下のとおりです。

    <?php
    $paged = (int) get_query_var('paged');
    $args = array(
    	'posts_per_page' => 10,
    	'paged' => $paged,
    	'orderby' => 'post_date',
    	'order' => 'DESC',
    	'post_type' => 'post',
    	'post_status' => 'publish',
    	'post_not_in' => array(132,173,177,179,181),
    );
    $the_query = new WP_Query($args);
    
    if ( $the_query->have_posts() ) :
    	while ( $the_query->have_posts() ) : $the_query->the_post();
    		get_template_part('content-archive');
    	endwhile;
    else:
    	echo "none";
    endif;
    
    	//ここにfunction.php内のpager関数を呼び出したい
    	if (function_exists("pagination")) {
    		pagination($additional_loop->max_num_pages);
    	}
    
    wp_reset_postdata();
    ?>

    見難いコードでごめんなさい。
    pagination関数の中身を載せたほうが良ければ載せます。

    初心者なもので説明が分かりにくい箇所があるかと思いますが、何なりとご質問ください。

    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Exec-PHPはセキュリティの観点などにより、使用しないほうがいいです。

    page.phpやpage-投稿ID.phpなどのテンプレートで対応するか、ショートコードをおすすめします。

    コメントありがとうございます。

    セキュリティ面で懸念があることを初めて知りました。
    page-投稿スラッグ名.phpで対応する事にいたしました。

    とりあえず投稿画面では何も入力せず、テンプレートに以下のコードを入力してみました。
    結論から申し上げるとやはりページ送りは表示されませんでした。。

    他の一覧ページは表示できているのに、なぜだか考えが及びません。

    <div id="main">
    
    	<?php while(have_posts()): the_post(); ?>
    <!-- 	<?php the_content(); ?> -->
    	<?php
    		$paged = (int) get_query_var('paged');
    		$args = array(
    			'posts_per_page' => 10,
    			'paged' => $paged,
    			'orderby' => 'post_date',
    			'order' => 'DESC',
    			'post_type' => 'post',
    			'post_status' => 'publish'
    		);
    		$the_query = new WP_Query($args);
    
    		if ( $the_query->have_posts() ) :
    			while ( $the_query->have_posts() ) : $the_query->the_post();
    				get_template_part('content-archive');
    			endwhile;
    		else:
    			echo "none";
    		endif;
    		wp_reset_postdata();
    	        //ここにpager関数を入れたいです
    		if (function_exists("pagination")) {
    			pagination($additional_loop->max_num_pages);
    		}
    	?>
    	<?php endwhile; ?>
    
    </div><!--/main-->

    おかげさまで自力解決ができました。

    無駄なwhile文とif文を削除して、

    if (function_exists("pagination")) {
    	pagination($additional_loop->max_num_pages);
    }

    上記の文の「$additional_loop->max_num_pages」を
    「$the_query->max_num_pages」に変更したらページネーション(ページ送り?)が表示されました。

    <?php
    	$paged = (int) get_query_var('paged');
    	$args = array(
    		'posts_per_page' => 10,
    		'paged' => $paged,
    		'orderby' => 'post_date',
    		'order' => 'DESC',
    		'post_type' => 'post',
    		'post_status' => 'publish'
    	);
    	$the_query = new WP_Query($args);
    
    	while ( $the_query->have_posts() ) : $the_query->the_post();
    		get_template_part('content-archive');
    	endwhile;
    
    	wp_reset_postdata();
    
            	//pager
    	if (function_exists("pagination")) {
    		pagination($the_query->max_num_pages);
    	}
    ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「固定ページの投稿入力からfunctionの関数を呼び出したい」には新たに返信することはできません。