ওয়ার্ল্ডপ্রেস দিয়ে সাইলেক্স বা স্লিম চালান


10

আমি ওয়ার্ডপ্রেসে একটি থিম চালাচ্ছি। এই থিমটিতে, আমি কিছু এজ্যাক্স কল করছি যেখানে আমি কিছু সাড়া প্রত্যাশা করছি। ( http://example.com/capis/v0/packages/ )

উপরে HTTP কল পরিবেশন করতে আমি HTTP সার্ভার হিসাবে সাইলেক্স ব্যবহার করছি।

index.php

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Silex\Application;

$app = new Silex\Application();

$app->POST('/capis/v0/packages/', function(Application $app, Request $request) {
            # logic            
            return new Response('HELLO');
            });
$app->run();

আমি পিএইচপি ব্যবহার করছি 8080 পোর্টে একটি সার্ভার চালাতে যা এজ্যাক্স কলগুলিতে ডেটা সরবরাহ করে।

php -S localhost:8080 -t web web/index.php

এখন আমি কেবলমাত্র ওয়ার্ডপ্রেস ব্যবহার করে এই আজাক্স কলগুলি পরিবেশন করতে চাই। আমি নির্দিষ্ট পিএইচপি সার্ভার চালাতে চাই না।


আরও সার্ভার-সাইড প্রশ্নের মতো মনে হচ্ছে। আপনি যদি নিজের স্থানীয় ওয়ার্ডপ্রেস ইনস্টলেশন থেকে কেবল অনুরোধের অনুমতি চান তবে আমি মনে করি আপনাকে আপনার সার্ভারটি কনফিগার করতে হবে :)
কোল্যা কোরোবচকিন

8
আমি সিলেক্সের পরিবর্তে আরআরটি এপিআই ব্যবহারের সুপারিশ করব ।
kraftner

@ ক্রাফ্টনার দ্বারা উল্লিখিত আরআরটি এপিআই ছাড়াও, আপনি থেমোসিস ফ্রেমওয়ার্কটিও দেখতে পারেন।
ফ্যাবিয়ান মারজ

একটি সংক্ষিপ্ত উদাহরণের জন্য দেখুন দেখুন ওয়ার্ডপ্রেস.স্ট্যাকেক্সেক্সঞ্জ / প্রশ্নগুলি / 14০১৪৯৩ আমার জন্য ডেভেলপার.ওয়ার্ডপ্রেস
ক্লেম্যানস টলবুম

আপনি WP-REST এপিআই ব্যবহার করতে পারেন বা আপনি wp_ajax ক্রিয়া ব্যবহার করে কাস্টম এপিআই তৈরি করতে পারেন। এখানে অফিসিয়াল ডক
idpokute

উত্তর:


1

সাইলেক্স সার্ভারের সাথে আপনি যা করতে পারেন তা খুব কমই আছে যা ওয়ার্ডপ্রেসের মাধ্যমে করা যায় না তবে ডাব্লুপিএজকে আজেএক্সের কলগুলিতে সাড়া দেওয়ার জন্য কিছুটা প্রচেষ্টা দরকার।

প্রথম পদক্ষেপটি AJAX এর মাধ্যমে কলটি উপলব্ধ করা। এর জন্য আপনার ফাংশনগুলির সাথে একটি লাইন যুক্ত করা দরকার ph

add_action('wp_ajax_my_ajax_call', 'onno_update_my_ajax_call');

যদি এই কলটি অতিথি এবং গ্রাহকদের জন্য করা হবে (যেমন অ্যাডমিন নয়), আপনারও লাইনটি দরকার হবে।

add_action('wp_ajax_nopriv_my_ajax_call', 'my_ajax_call');

যা একই জিনিস করে তবে আরও বেশি অন্তর্ভুক্ত।

পরবর্তী পদক্ষেপটি এজাক্স কলগুলি তৈরি করা। আপনি এই জাতীয় কলটির উদাহরণ দেবেন না তাই আমি যা করতে পারি তা হ'ল $ wpdb এর জন্য ডক্সটি দেখার পরামর্শ । ডাটাবেস থেকে তথ্য পুনরুদ্ধার করার জন্য এবং জটিল প্রশ্নের জন্য ডাব্লুপি-র কলগুলির একটি বিস্তৃত সেট রয়েছে, আপনি সর্বদা $ wpdb-> ক্যোয়ারী () ব্যবহার করতে পারেন যা আপনার জন্য নির্বিচারে এসকিউএল চালাবে।

AJAX যুক্তি my_ajax_call () ফাংশনে যায় এবং ফলাফলটি একটি অ্যারে বা অবজেক্টে স্থাপন করা উচিত। আপনার ফাংশনটির চূড়ান্ত লাইনটি ডাব্লুপি_সেন্ড_জসন_সুসেসে ($ রিটার্ন) কল করা উচিত যেখানে $ রিটার্নটি প্রত্যাবর্তনের জন্য অবজেক্ট / অ্যারের তথ্য।

এই সিস্টেমটি ব্যবহার করে, আমি ডাব্লুপি_এডমিন বিভাগে পৃষ্ঠাগুলি যুক্ত করতে সক্ষম হয়েছি যাতে দোকান মালিকদের ডাব্লুউকমার্স ডেটা থেকে পুনরায় বন্ধ করার জন্য ক্রয়ের আদেশ তৈরি করতে এবং পার্শ্ব-লোড গ্যালারী পরিবর্তনের জন্য (উও কেবল পিতামাতার জন্য একটি গ্যালারী অনুমতি দেয়)।

এখানে একটি দ্রুত উদাহরণ:

function my_ajax_call() {
    $return['data'] = date('Y-m-d');
    wp_send_json_success($return);
    wp_die();
}

এবং তারপরে জাভাস্ক্রিপ্টে আরও পদক্ষেপগুলি প্রয়োজনীয়। একটি জিনিসের জন্য, আপনার ডাব্লুপি আজাক্স ইউআরএল প্রয়োজন হবে যা সাধারণত /wp-admin/admin-ajax.phpতবে কিছুটা পরিবর্তিত হতে পারে। এটি প্রায়শই জাভাস্ক্রিপ্টকে বৈশ্বিক আজাকুরল হিসাবে উপলব্ধ করা হয় বা অন্য কোনও বস্তুর মতো টোকা দেওয়া হতে পারে woocommerce.ajaxurl। আপনাকে জাভাস্ক্রিপ্ট অবজেক্টটি এমন একটি অ্যাকশন উপাদান দিয়ে তৈরি করতে হবে যা আপনার ফাংশনটিকে নির্দেশ করে এবং অন্য কোনও ভেরিয়েবলগুলি আপনাকে এজ্যাক্স কলটিতে যেতে পারে। উদাহরণ স্বরূপ:

data = {'action':'my_ajax_call'}

অথবা

data = {'action':'my_ajax_call', 'todo':'getDate'}

(function($){
    $.ajax{
        url:ajaxurl,
        data: data,
        success: function(trn) {$('#data').html(trn.data)}
})(jQuery)

আছে HTH


আরও কিছু ওয়ার্ডপ্রেস এবং এজাক্স গবেষণার জন্য আমি টম ম্যাকফারলিনের তৈরি নিবন্ধগুলি পড়ার পরামর্শ দিতে পারি, তিনি ওয়ার্ডপ্রেস সম্পর্কে v. জ্ঞানগঠিত এবং বিশেষত অ্যাজাক্সে কিছু ভাল পোস্ট রয়েছে [ google.co.uk/…
ভার্চুয়াললাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.