वर्डप्रेस वेबसाइट के "मानक" पहलुओं के लिए प्रारंभिक स्क्रिप्ट?


23

मैं वर्डप्रेस 3.0.1 की एक नई स्थापना लेने के लिए एक स्क्रिप्ट लिखने वाला हूं और एक वेबसाइट के लिए सभी प्रारंभिक विशेषताओं में ऐड-इन । यह एक ऐसी कंपनी के लिए है जो बहुत सी समान वेबसाइटों को स्थापित करती है और उन्हें कॉन्फ़िगरेशन और डेटा में एक मानक प्रारंभिक बिंदु की आवश्यकता होती है।

  • मैं सोच रहा था कि क्या किसी और ने पहले ही ऐसा किया है और यदि ऐसा है तो वे अपना कोड साझा कर सकते हैं?

मैं कल्पना करता हूं कि हम इस स्क्रिप्ट को हर बार एक नई साइट बनाएंगे ताकि हार्ड-कोडिंग ठीक हो सके, हालांकि अंततः (पर्याप्त अनुभव के बाद) मैं एक प्लगइन में बदलना चाहूंगा।

यहां उन कार्यों की मूल सूची है जो मुझे लगता है कि हमें आवश्यकता होगी (ये मान लें कि मैंने वर्डप्रेस 3.0.1 के साथ शुरुआत की है और पहले से ही स्थापित मेरे कस्टम प्लगइन्स और कस्टम थीम उपयुक्त निर्देशिकाओं में कॉपी किए गए हैं) :

// Create users for the current site
// Delete Hello Dolly Plugin
// Download, Install and Activate repository plugins
// Activate Custom Plugins (assume the plugins are already there)
// Activate Custom Theme
// Delete Hello Post
// Delete Comment on Hello Post
// Create Pages with Starter Content
// Create Initial Custom Post Types with Starter Content
// Create Multiple Menus 
// Create Menu Items for those Menus linking to Pages and wp-login.php
// Create Initial Taxonomy Terms
// Set Desired Permalinks Setting
// Set Static Front Page Setting

यह इसके बारे में है (हालांकि मैं इसकी पहचान कर सकता हूं क्योंकि मैं इसमें शामिल हो जाऊंगा।)

फिर से, मुझे ऐसे कोड की तलाश है जो मैं बस कॉपी कर सकता हूं और संशोधित कर सकता हूं, इसलिए मुझे इन सभी विवरणों का खुद पता लगाने की आवश्यकता नहीं है (जो कठिन नहीं है, बस थकाऊ और समय लेने वाली है)

ओह, एक और बात, मुझे इस पर अभी शुरुआत करनी है ताकि जितनी जल्दी हो सके! :-)


क्या आप इसे स्पष्ट कर सकते हैं Create Menus for Custom Pages? क्या आपका मतलब है कुछ पन्नों पर व्यक्तिगत मेनू क्षेत्र या क्या?
Rarst

Hi @Rarst : मुझे मेन्यू आइटम के साथ तीन मेन्यूचेक बनाने की ज़रूरत है, जो मैं जोड़ने वाले कस्टम पेजों से जोड़ूंगा ( "कस्टम" का मेरा उपयोग संभवतः भ्रमित कर रहा है, मैं उस शब्द को छोड़ दूंगा और बस "पेज" कहूंगा ) मुझे प्रत्येक मेनू के लिए तीन मेनू और मेनू आइटम जोड़ने की आवश्यकता है जहां मेनू आइटम में से एक को लॉगिन पृष्ठ से लिंक करना होगा।
माइकस्किंकल

"हैलो डॉली" प्लगइन को क्यों हटाएं? मेरा मतलब है, मैं समझता हूं कि आप इसे क्यों नहीं चाहते हैं, लेकिन इसकी उपस्थिति साइट के संचालन को प्रभावित नहीं करती है, और यदि आप स्वचालित अपग्रेड फ़ंक्शन का उपयोग करते हैं, तो हर बार एक नया संस्करण जारी होने पर इसे बहाल किया जाएगा।
डग

2
Hi @Doug : हैलो डॉली को क्यों हटाएं? सरल उत्तर: ग्राहक इसे वहां नहीं चाहता है। :)
माइकस्किंकेल

जवाबों:


20

जैसा कि मैंने उल्लेख किया है कि मैं तुरंत इस आवश्यकता पर काम करना शुरू करने वाला था इसलिए मैं हेडवे बना रहा हूं। यह देखते हुए कि मैं इन्हें नीचे गिरा रहा हूं मुझे लगा कि इन्हें पोस्ट करना शुरू करना सबसे अच्छा है। फिर भी, अगर कोई अन्य व्यक्ति कुछ हिस्सों को पोस्ट / कर सकता है (मैंने कुछ नहीं किया है) तो मुझे खुशी होगी कि मैंने आपको जो भी किया है उसे कॉपी करने और सबसे अच्छे उत्तर के रूप में आपके उत्तर का चयन करने में खुशी होगी। तब तक मैं कोड पोस्ट करना शुरू करूंगा।

पहली बात: शामिल करें wp-load.php:

चूंकि हम आरंभीकरण को चलाने के लिए वेबसाइट के मूल में एक स्टैंडअलोन फ़ाइल बना रहे हैं, जिसका उपयोग केवल उस साइट को "बूटस्ट्रैप" करने के लिए किया जाएगा (जिसे मैंने मेरा कहा था /my-init.php) हम /wp-load.phpवर्डप्रेस एपीआई कार्यों को लोड करने के लिए शामिल करके शुरू करते हैं:

<?php
include "wp-load.php";

साइट के लिए उपयोगकर्ता बनाना

हम अपने उपयोगकर्ताओं को बनाने के लिए wp_insert_user()स्थित फ़ंक्शन का उपयोग करेंगे /wp-includes/registration.php। यह फ़ाइल डिफ़ॉल्ट रूप से लोड नहीं हुई है, इसलिए हमें इसे कॉल के साथ स्वयं लोड करना होगा require_once()

हम get_user_by()फ़ंक्शन का उपयोग पहले यह देखने के लिए भी करेंगे कि क्या उपयोगकर्ता पहले ही बनाया जा चुका है; यदि वे नहीं करते हैं तो कोड को दो बार चलाने की आवश्यकता नहीं है। नोट: यह एक पैटर्न का पालन करेगा; उदाहरण के लिए, हमारी स्क्रिप्ट को किसी भी चीज़ की नकल या ओवरराइट नहीं करना चाहिए यदि कई बार कॉल किया जाता है, खासकर जब उपयोगकर्ताओं ने किसी भी आइटम को जोड़ने या बदलने की योजना बनाई है, जिसे हमने शुरू करने के लिए कहा है।

require_once( ABSPATH . WPINC . '/registration.php');     
$user = get_user_by('slug','johnsmith');
if (!is_object($user)) {
  wp_insert_user(array(
    'user_login'        => 'johnsmith',
    'role'              => 'administrator',
    'user_email'        => 'johnsmith@example.com',
    'user_url'          => 'http://example.com',
    'first_name'        => 'John',
    'last_name'         => 'Smith',
    'comment_shortcuts' => '',
    'use_ssl'           => '0',
    'user_pass'         => '12345',
  ));
}

"हैलो डॉली" प्लगइन को हटाना

"हैलो डॉली" प्लगइन ( क्षमा करें मैट ) को हटाने के लिए हम delete_plugins()फ़ंक्शन का उपयोग करेंगे । delete_plugins()फ़ाइल पथों की एक सरणी की अपेक्षा करता है जो /wp-content/includes/निर्देशिका के सापेक्ष हैं । के लिए हैलो डॉली प्लगइन फ़ाइल पथ बस है hello.phpके बाद से हैलो डॉली प्लगइन अपने आप निर्देशिका में संग्रहीत नहीं है लेकिन सबसे प्लगइन्स के लिए यह के रूप में हो जाएगा {$subdir}\{$filename}.php; यानी Akismet के लिए फ़ाइल पथ है akismet/akismet.php

हालाँकि, delete_plugins()तब तक उपलब्ध नहीं है जब तक हमने शामिल नहीं किया है /wp-admin/includes/plugin.phpऔर एक निर्भरता भी है wp-admin/includes/file.phpइसलिए हम require_once()दोनों को कॉल करने से पहले delete_plugins()। अंत में हम यह देखने के लिए कि क्या मुख्य प्लगइन फाइल मौजूद है, इसे हटाने के प्रयास से पहले WP_PLUGIN_DIRसंयुक्त का उपयोग file_exists()करते हैं (ऐसा नहीं है कि अगर हम लापता फ़ाइल को हटाने की कोशिश करें, लेकिन यह वास्तव में पहले जाँच करने के लिए अधिक सुरुचिपूर्ण है और आपको यह जानने की आवश्यकता हो सकती है कि कैसे किसी और कारण से) :

require_once(ABSPATH . 'wp-admin/includes/plugin.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
if (file_exists(WP_PLUGIN_DIR . '/hello.php'))
  delete_plugins(array('hello.php'));

ध्यान दें कि कभी-कभी delete_plugins()फ़ाइल अनुमतियों के कारण विफल हो जाएगा या शायद तथ्य यह है कि एक प्लगइन वर्तमान में सक्रिय है या कोई अन्य कारण है जिसे आपको पहले हल करना होगा लेकिन हमारे उपयोग के मामले के लिए हैलो डॉली बिना किसी लड़ाई के चली जाती है।

रिपॉजिटरी प्लगइन्स डाउनलोड करना, इंस्टॉल करना और सक्रिय करना

मुझे वास्तव में अब रिपॉजिटरी से प्लगइन्स डाउनलोड करने की आवश्यकता नहीं है (मैं सोच रहा था कि यह सिर्फ एक अच्छा होगा) हम इस आवश्यकता को स्लाइड करने जा रहे हैं और इसे बाद में फिर से जारी करेंगे।

अपने प्लगइन्स को सक्रिय करना

अगला हमारे अपने कस्टम प्लगइन्स को सक्रिय कर रहा है। हम मान रहे हैं कि हमने उन्हें पहले ही प्लगइन डायरेक्टरी में अपलोड कर दिया है और हमें वर्डप्रेस के लिए उन्हें सक्रिय करने की आवश्यकता है । ( नोट : यह तकनीक रिपॉजिटरी प्लगइन्स को भी सक्रिय करने के लिए काम करेगी, यह सिर्फ उन्हें पहले डाउनलोड और इंस्टॉल नहीं करेगी।)

हम उस activate_plugin()फ़ंक्शन का उपयोग करेंगे, जिसमें शामिल होना delete_plugins()आवश्यक /wp-admin/includes/plugin.phpहै, लेकिन उस स्थिति में ज़रूरत नहीं है जब /wp-admin/includes/file.phpआपको केवल सक्रियण को स्वचालित करने और हटाने की आवश्यकता नहीं है।

हम फिर से अस्तित्व के लिए परीक्षण करेंगे (सक्रिय होने की आवश्यकता नहीं है, नहीं तो एह?) और हम उस is_plugin_active()फ़ंक्शन का उपयोग करके भी सत्यापित करेंगे कि प्लगइन पहले से सक्रिय नहीं है। नोट मैंने इस बार ( $plugin_filepathऔर $plugin_dir) कुछ चर का उपयोग किया था ताकि प्लगइन पहचानकर्ता को कई बार दोहराया जा सके।

हमारा उदाहरण है कि उपनिर्देशिका my-custom-plugin.phpमें स्थित प्लगइन को सक्रिय करता है my-custom-plugin:

require_once(ABSPATH . 'wp-admin/includes/plugin.php');
$plugin_filepath = 'my-custom-plugin/my-custom-plugin.php';
$plugin_dir = WP_PLUGIN_DIR . "/{$plugin_filepath}";
if (file_exists($plugin_dir) && !is_plugin_active($plugin_filepath))
  activate_plugin($plugin_filepath);

आपका पसंदीदा विषय सक्रिय करना

किसी विषय को सक्रिय करना, प्लगइन को हटाने या सक्रिय करने की तुलना में थोड़ा आसान है, तुलनात्मक रूप से बोलना; एक फ़ंक्शन कॉल वह सब है जो आवश्यक है switch_theme():। switch_theme()समारोह दो को स्वीकार करता है (2) : मापदंडों टेम्पलेट और स्टाइलशीट । ठीक है, कम से कम यह है कि मापदंडों का नाम क्या है। आप पेरेंट थीम और चाइल्ड थीम के संदर्भ में अधिक परिचित हो सकते हैं ।

यह मानते हुए कि आपने डिफ़ॉल्ट TwentyTen थीम के साथ एक बाल थीम बनाया है जो वर्डप्रेस के पेरेंट थीम होने के साथ आता है और आपने इसे "मेरा कस्टम थीम" कहा है और इसे /wp-content/themes/my-custom-themeनिर्देशिका में रखा है , आप इस कॉल का उपयोग करके अपने विषय को सक्रिय करेंगे:

switch_theme('twentyten', 'my-custom-theme');

लेकिन क्या होगा अगर यह एक बाल विषय नहीं है? यह आसान है, बस दोनों मापदंडों के रूप में डायरेक्टरी स्लग / थीम आइडेंटिफ़ायर (यानी जो /wp-content/themesआपके विषय में उपनिर्देशिका का नाम है ) पास करें । मान लें कि आप Ian D Stewart द्वारा थीम विषय को सक्रिय करना चाहते हैं जिसे आप इस तरह कहते हैं:switch_theme()

switch_theme('thematic', 'thematic');

व्यक्तिगत रूप से मुझे लगता है कि दोनों विवरणों पर नज़र रखना थोड़ा अजीब है, इसलिए मैंने एक फ़ंक्शन लिखा है जो फ़ंक्शन activate_my_theme()को सुनिश्चित करने के लिए पहले चेक करता है get_current_theme()और यदि इसे सक्रिय नहीं करता है। आपको बस इसे बाल विषय (उर्फ "स्टाइलशीट") बताने की आवश्यकता है और यह फ़ंक्शन के विवरण को पकड़कर आपके लिए मूल विषय (उर्फ "टेम्पलेट") का पता लगाता है get_theme()

activate_my_theme('My Current Theme');
function activate_my_theme($theme_name) {
  if ($theme_name!=get_current_theme()) {
    $theme = get_theme($theme_name);
    switch_theme(
      $theme['Template'],
      $theme['Stylesheet']
    );
  }
}

एक प्रमुख बिंदु जिसके बारे में पता होना चाहिए ; इस get_theme()समारोह में बाल थीम का नाम पारित होने की उम्मीद है , कि यह निर्देशिका स्लग / थीम पहचानकर्ता है। (यह नाम थीम के style.cssफाइल के हेडर में "थीम नेम:" सेक्शन में आता है । सौभाग्य से get_current_theme()फंक्शन नाम भी वापस कर देता है।)

style.cssवर्डप्रेस डिफ़ॉल्ट थीम ट्वेंटी टेन की फ़ाइल में हेडर का निरीक्षण करते हुए हम देखते हैं कि यह नाम वास्तव में है 'Twenty Ten':

/*
Theme Name: Twenty Ten
Theme URI: http://wordpress.org/
Description: The 2010 theme for WordPress is stylish, customizable, simple, and readable -- make it yours with a custom menu, header image, and background. Twenty Ten supports six widgetized areas (two in the sidebar, four in the footer) and featured images (thumbnails for gallery posts and custom header images for posts and pages). It includes stylesheets for print and the admin Visual Editor, special styles for posts in the "Asides" and "Gallery" categories, and has an optional one-column page template that removes the sidebar.
Author: the WordPress team
Version: 1.1
Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style
*/

"हैलो वर्ल्ड" पोस्ट को हटाना

आगे हम "हैलो वर्ल्ड" पोस्ट को हटाना चाहते हैं । आपने देखा होगा कि @Rarst ने हमें दिखाया है कि wp_delete_post()फ़ंक्शन का उपयोग कैसे किया जाता है जो कि वास्तव में हमें चाहिए। जैसा कि उन्होंने बताया कि दूसरा पैरामीटर पूरी तरह से पोस्ट को डिलीट कर देगा क्योंकि इसे कूड़ेदान में ले जाने का विरोध है और पहला पैरामीटर है $post->ID

बेशक, इसके बजाय स्लग को निर्दिष्ट करने में सक्षम होना अच्छा होगा $post->IDऔर इसलिए मैं ऐसा करने का एक तरीका खोजने का निर्णय लेता हूं। कुछ स्पेलुनकिंग के बाद मैंने पाया कि वर्डप्रेस में दुर्भाग्यवश नाम का एक फंक्शन है, get_page_by_path()जो वास्तव में हमें इसके स्लग द्वारा किसी भी पोस्ट प्रकार को देखने की अनुमति देता है (यह दुर्भाग्यवश नाम दिया गया है क्योंकि आप इसे खोजने की कोशिश कर सकते हैं जब आप पोस्ट के अलावा अन्य प्रकार के साथ काम करने की कोशिश कर सकते हैं 'page'।)

चूंकि हम get_page_by_path()वर्डप्रेस-डिफाइंड कंटीन्यू को पास करते हैं, OBJECTयह पोस्ट ऑब्जेक्ट के रूप में हमारे पास वापस आ जाएगा। तीसरे पैरामीटर के लिए हमने 'post'संकेत दिया कि हम इसे पोस्ट प्रकारों को देखने के लिए चाहते थे 'post'। चूँकि get_page_by_path()हम जिस पोस्ट ऑब्जेक्ट की आवश्यकता करेंगे या वापस करेंगे nullयदि कोई पोस्ट स्लग से मेल नहीं खाती है तो हम अस्तित्व की जांच कर सकते हैं और उसी समय एक लुकअप कर सकते हैं:

$post = get_page_by_path('hello-world',OBJECT,'post');
if ($post)
  wp_delete_post($post->ID,true);

नोट: हम डेटाबेस में हर पोस्ट को हटाने के लिए कोड चला सकते थे, लेकिन अगर हम चाहते थे कि हम इस कोड को फिर से नहीं चला पाएंगे तो हमने उन पोस्ट्स को जोड़ दिया है जिन्हें हम रखना चाहते हैं और जो हमारे डिजाइन बाधाओं में से एक थी।

आगामी...

जब तक मैं यह कर रहा हूँ या किसी और की मदद नहीं करता तब तक मैं इसे जोड़कर रखूँगा।


यह वास्तव में उपयोगी है, यहाँ पर बाकी कार्यक्षमता को शामिल करने का कोई भी मौका?
जेटीऑन

@jjeaton - लघु जवाब: हाँ, पर ... । लंबे समय तक जवाब: यह कुछ दिनों के लिए है अगर सप्ताह नहीं। मैंने इस समस्या पर महत्वपूर्ण काम किया है क्योंकि मैंने पिछली बार यहां लिखा था, लेकिन मेरा ग्राहक एक परियोजना को समाप्त करने के लिए जोर दे रहा है और मैं पीछे हूं, इसलिए ... यदि आप थोड़ी देर प्रतीक्षा कर सकते हैं तो मैं इसे जल्द से जल्द पोस्ट करूंगा। इसे लिखने के लिए खाली समय मिलेगा। BTW, आप किन पहलुओं में सबसे अधिक रुचि रखते हैं?
माइकस्किंकल

बेशक, कोई जल्दी नहीं। मैं सोच रहा था कि यह प्रश्न वास्तव में मूल्यवान होगा और इसलिए पूरा समाधान देखना चाहता था। मैं कई वर्डप्रेस साइटों को चलाता हूं, और मैं हमेशा उन पर दोहराए जाने वाले रखरखाव को स्वचालित करने के तरीकों की तलाश कर रहा हूं (प्लगइन अपडेट, अपग्रेड, आदि) इसलिए यह कुछ वास्तव में मूल्यवान है।
jjeaton

4

वांछित Permalinks सेट करें

इस सप्ताह आई एक नई (ज़बरदस्त) थीम परियोजना जो एचटीएमएल 5 / CSS3 की कार्यक्षमता पर बहुत अधिक केंद्रित है, इसमें कुछ बॉयलरप्लेट सामग्री बनाने, पर्मलिंक सेटिंग्स शामिल करने, साइट स्थापित करने के लिए एक रिश्तेदार रूट सेट करने आदि के लिए स्वयं की 'बूटस्ट्रैप' स्क्रिप्ट है। सुविधाओं को विषय सक्रियण पर कहा जाता है। परियोजना को रूट्स कहा जाता है और यहां कोड डाउनलोड किया जा सकता है ; मैं इस कोड का कोई श्रेय नहीं लेता। यह कहा गया है, यहाँ कोड को ऑटो-सेट / वर्ष / पोस्टनाम को पर्मलिंक संरचना (और वैश्विक $ pagenow के लिए नीचे दिए गए सक्रियण हुक ) के रूप में समझाया गया है: http://foolswisdom.com/wp-activate-theme-actio/ ।) ।

<?php

    global $pagenow;
    if (is_admin() && 'themes.php' === $pagenow && isset( $_GET['activated'])) {


        // set the permalink structure
        if (get_option('permalink_structure') != '/%year%/%postname%/') { 
            update_option('permalink_structure', '/%year%/%postname%/');
      }

        $wp_rewrite->init();
        $wp_rewrite->flush_rules(); 


    }

?>


ओह, इस सवाल पर काम जारी रखने की योजना है ... लेकिन कई अन्य योजनाएं भी हैं। :) मैं यह नोट करना चाहता हूं कि गैर-शैक्षिक व्यापक तृतीय पक्ष कोड स्निपेट से लिंक करना बेहतर है, बजाय यहां पोस्ट थीम के। यह साइट उपयोगकर्ता के योगदान को cc-wiki लाइसेंस के तहत रखती है, इसलिए यह कोड के लिए लागू होने पर स्थिति गड़बड़ और भ्रमित हो जाती है।
रार्स्ट

यकीन के लिए, निश्चित रूप से। फिर भी यहाँ बहुत बढ़िया प्रगति हुई है। यह आपके सुझाव पर एक महान कॉल है, मैं एक या दो बार स्टैक एक्सचेंज ब्लॉक के आसपास रहा हूं, लेकिन लाइसेंस के निहितार्थ के बारे में कभी नहीं सोचा। मैंने अपने कोड को नीचे संपादित किया और बाकी कोड मेरे द्वारा दिए गए लिंक पर आसानी से प्राप्त हो गया। टिप के लिए धन्यवाद :)

3

हैलो पोस्ट हटाएं (टिप्पणी के साथ)

wp_delete_post( 1, true );

wp_delete_post()डॉक्स से सीधे । दूसरा पैरामीटर कूड़ेदान में जाने के बजाय इसे पूरी तरह से बंद कर देता है।

मेनू बनाएँ

यह नया मेनू बनाता है और सभी मौजूदा पृष्ठों को आइटम के रूप में जोड़ता है। मुझे यकीन नहीं है कि यह पूरी तरह से सही है, मैं Pageअन्य चीजों के बीच लेबल दिखाने के लिए मेनू आइटम प्राप्त करने में असमर्थ था । वैसे भी मेरा दिमाग पिघल रहा है इसलिए मैं ब्रेक ले रहा हूं। हो सकता है कि कोई इसे और अधिक विश्वसनीय के लिए अपग्रेड करने में सक्षम होगा।

$menu = wp_create_nav_menu( 'Pages' );
$menu = wp_get_nav_menu_object( 'Pages' );
$pages = get_pages();

foreach( $pages as $page ) {

$item = array(
'menu-item-db-id' => 0,
'menu-item-object-id' => $page->ID,
'menu-item-type' => 'post_type',
'menu-item-status' => 'publish'
);

wp_update_nav_menu_item( $menu->term_id, 0, $item );
}

Hi @Rarst : टिप्पणी करने के लिए धन्यवाद। आह, आप एक आसान ले लिया ... ;-) मैं अभी वापस आ रहा था कि एक लिखने के लिए।
माइकस्किंकेल

@MikeSchinkel कुछ भी आप अभी नहीं लिख रहे हैं? यह परिणाम के साथ आने और इसे पहले से ही पूरा करने के लिए मेनू कोड (यह डरावना है) में गोता लगाने के लिए एक बेकार होगा। :)
Rarst

हाय @ रस्ट! सूची के अंत में शुरू करें? (अग्रिम धन्यवाद।)
माइकस्किंकेल

ठीक है, मैं मेनस को संभालने की कोशिश करूंगा, लेकिन कोई वादा नहीं। यह कोड अंदर जटिल है (आई कैंडी की कीमत और उपयोगिता) इसलिए मुझे विश्वास नहीं है कि मेरे कौशल इसके ऊपर हैं।
Rarst

हे @ रार्स्ट - मुझे बहुत काम मिला, लेकिन यह शायद 24 घंटे या इससे पहले कि मैं अपना जवाब खत्म कर पाऊं । बस आपको यह बताने की इच्छा थी कि आप इसे काम करने की कोशिश में खुद को मार नहीं सकते थे। आपके परिश्रम के लिए धन्यवाद।
11

0

यदि मैं इसे अच्छी तरह से समझता हूं, तो आप इसे जन्मजात अस्थिरता के लिए चाहते हैं - फिर मुझे डर है कि आपका दृष्टिकोण पूरी तरह से गलत है।

सुदूर बेहतर, आसान और मानकीकृत तरीका है install.php बनाना और इसे wp-content फ़ोल्डर में रखना - यह स्थापना के दौरान स्वचालित रूप से भरा हुआ है।

वहाँ आप अपना खुद का wp_install फंक्शन डाल सकते हैं (जैसा कि वर्डप्रेस खुद के फंक्शन का उपयोग करता है अगर (? Function_exist)) तो वहाँ आप अपने विकल्पों को आसानी से सेटअप कर सकते हैं, प्लगइन्स को सक्रिय कर सकते हैं, प्रारंभिक पोस्ट, कैटेगिरी, टैग, यूज़र्स भर सकते हैं ...

दूसरा विकल्प स्थिति के लिए हो सकता है, जहां आप पहले से मौजूद wp (जैसे डेमो संस्करण के लिए हर 30 मिनट में क्रोन का उपयोग करके सेट किया गया है) को साफ़ करना चाहते हैं - आप कर सकते हैं) एक ट्रिनेट डेटाबेस और ऊपर की प्रक्रिया का उपयोग करें, या प्लग इन का उपयोग करें। वही।


2
@ थोमस कपलर - आपके उत्तर के लिए धन्यवाद लेकिन मैं अलग होने की भीख माँगता हूँ; मेरा दृष्टिकोण "पूरी तरह से गलत नहीं है।" पहला, जो मैं चर्चा करता हूं वह वही कोड है जिसका आप उपयोग करेंगे install.phpऔर दूसरा ऐसे उपयोग मामले हैं जहां install.phpलागू नहीं है। हाँ, install.phpइसका उपयोग किया गया है, लेकिन यह विवरणों का ध्यान नहीं रखता है और न ही आपके लिए यह रामबाण है।
माइकस्किंकेल

0

इस स्थापित स्क्रिप्ट पर एक नज़र है। https://github.com/Pravdomil/WP-Quick-Install

मैं आपके विचारों और कुछ कोड को लेता हूं और कुछ बनाता हूं जो आप शायद खोज रहे हैं।

सुविधाएँ सेटअप डेटाबेस, विभिन्न भाषाएं हैं, उपयोगकर्ताओं को बनाते हैं, बुनियादी साइट सेटिंग्स सेट करते हैं, डिफ़ॉल्ट प्लगइन्स और टेम्पलेट्स को हटाते हैं, प्लग इन और थीम को डाउनलोड और सक्रिय करते हैं, डिफ़ॉल्ट अवतार, पर्मलिंक, स्थिर फ्रंट पेज को सक्रिय करते हैं।

योगदान करने के लिए स्वतंत्र।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.