七度&光 2016-05-28 16:21 采纳率: 22.2%
浏览 25

自定义Wordpress Ajax编码

Ok So I have created this AJAX code For My Wordpress theme and I originally have it for html. How Do I use wordpress php coding to get the content from the wordpress pages when clicked? Not concerned with getting post loops etc.... Going to have a static page. But I Do need It to get the content of the pages on click.

Heres the CODE

$( document ).ready(function() {
     $.ajax({
    method: 'GET',
    url: "pages/main.html",
    success: function(content)
    {
        $('#contentarea').html (content);
    }
});
    });



$('.menu_nav') .click (function () {
var href = $(this) .attr('href');
$('#contentarea').hide() .load(href).slideDown( 'very slow' )

    return false;
}); 

HTML structure for menu_nav

<div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#homenav">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>                        
      </button> 


      </div>


    <div class="collapse navbar-collapse" id="homenav">
<ul class="nav navbar-nav"> 
    <li><a href="pages/main.html" class="menu_nav demo-4">
      <span>
        <span>Home</span>
        <span>-Home-</span>
        <span></span>
      </span>
    </a></li>

          <li> <a href="pages/artist.html" class="menu_nav demo-4">
      <span>
        <span>Roster</span>
        <span>-Roster-</span>
        <span></span>
      </span>
    </a></li>
<li>
 <a href="pages/order.html" class="menu_nav demo-4">
      <span>
        <span>Beats</span>
        <span>-Beats-</span>
        <span></span>
      </span>
    </a>    
           </li> <li>
          <a href="pages/music.html" class="menu_nav demo-4">
      <span>
        <span>Music</span>
        <span>-Music-</span>
        <span></span>
      </span>
    </a>    
           </li>     
            <li>
          <a href="pages/videos.html" class="menu_nav demo-4">
      <span>
        <span>Videos</span>
        <span>-Videos-</span>
        <span></span>
      </span>
    </a> </li>
<li>
<a href="pages/videos.php" class="menu_nav demo-4">
      <span>
        <span>Store</span>
        <span>-Store-</span>
        <span></span>
      </span>
    </a>    
    </li>
    <li>          
               <a href="pages/services.html" class="menu_nav demo-4">
      <span>
        <span>Services</span>
        <span>-Services-</span>
        <span></span>
      </span>
    </a> 
            </li>
            <li>
            <a href="#" class="menu_nav demo-4">
      <span>
        <span>Resources</span>
        <span>-Resources-</span>
        <span></span>
      </span>
    </a>       </li>

    <li>
            <a href="#" class="demo-4 snipcart-checkout">
      <span>
        <span>YOUR CART: </span>
        <span><div class="snipcart-summary"><span class="snipcart-total-price"></span></div></span>
        <span></span>
      </span>
    </a>       </li>


    </ul>

            </div>
                        <div class="col-sm-1 col-md-1"><div class="navbar-right">
                <a href="#" class=""><font color="black" ></span></font></a></span>
            </div></div>




               </div>     
      </nav>
  • 写回答

1条回答 默认 最新

  • csdnceshi62 2016-05-28 16:56
    关注

    When you could add instead of the end url just the page id you could do something like this:

    HTML

    <a href="#" class="menu_nav demo4" data-page="1">Home</a>
    <a href="#" class="menu_nav demo4" data-page="2">About</a>
    <a href="#" class="menu_nav demo4" data-page="3">Projects</a>
    <a href="#" class="menu_nav demo4" data-page="4">Contact</a>
    

    PHP

    <?php
        /**
         * Init js script and its variables
         */
        add_action( 'wp_enqueue_scripts', 'init_js_vars' );
        function init_js_vars() {
            wp_enqueue_script( 'your_script', [YOUR_PATH_TO_JS_FILE], array( 'jquery') );
    
            wp_localize_script( 'your_script', 'theme', array(
                'ajaxurl' => admin_url( 'admin-ajax.php' ),
                'nonce' => wp_create_nonce( 'ajax-get-page-content' ),
                'page' => 4
            ) );
        }
    
        /**
         * Handle ajax request, returns content of specific page
         */
        add_action( 'wp_ajax_get_page_content', 'get_page_content' );
        add_action( 'wp_ajax_nopriv_get_page_content', 'get_page_content' );
        function get_page_content() {
            check_ajax_referer( 'ajax-get-page-content', 'nonce' );
    
            $post_id = absint( $_POST['page_id'] );
    
            $post = get_post( $post_id );
            $content = apply_filters('the_content', $post->post_content); 
    
            wp_send_json_success( array( 'content' => $content ) );
        }
    ?>
    

    JS

    $(document).ready(function() {
        function load_page( e ) {
            e.preventDefault();
    
            var page = $( this ).data( 'page' );
    
            $.ajax({
                url: theme.ajaxurl,
                method: 'GET',
                data: {
                    action: 'get_page_content',
                    nonce: theme.nonce,
                    page_id: page
                },
                success: function(response) {
                    $('#contentarea').html(response.content);
                }
            });
        }
    
        $('a.menu_nav.demo4').on( 'click', load_page );
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)