একটি ওয়ার্ডপ্রেস ওয়েবসাইটের "স্ট্যান্ডার্ড" দিকগুলির জন্য ইনিশিয়ালাইজেশন স্ক্রিপ্ট?


23

আমি ওয়ার্ডপ্রেস .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? আপনি কিছু পৃষ্ঠায় স্বতন্ত্র মেনু অঞ্চল মানে বা কি?
র‌্যাস্ট

হাই @ রার্স্ট : আমি যে মেনু আইটেমগুলিতে লিঙ্ক করব আমি যে কাস্টম পৃষ্ঠাগুলির সাথে লিঙ্ক করব তার সাথে তিনটি মেনুসাচ তৈরি করতে হবে (আমার "কাস্টম" এর ব্যবহার সম্ভবত বিভ্রান্তিকর, আমি এই শব্দটি ফেলে দেব এবং কেবল "পৃষ্ঠাগুলি" বলব ) আমাকে প্রত্যেকটির জন্য তিনটি মেনু এবং মেনু আইটেম যুক্ত করতে হবে যেখানে মেনু আইটেমগুলির মধ্যে একটিতে লগইন পৃষ্ঠায় লিঙ্ক করা প্রয়োজন।
মাইকচিন্কেল

"হ্যালো ডলি" প্লাগইনটি মুছবেন কেন? আমি বোঝাতে চাইছি, আপনি কেন এটি চান না তা আমি বুঝতে পেরেছি, তবে এর উপস্থিতি সাইটের ক্রিয়াকলাপকে প্রভাবিত করে না এবং আপনি যদি স্বয়ংক্রিয়ভাবে আপগ্রেড ফাংশনটি ব্যবহার করেন, প্রতিবার নতুন সংস্করণ প্রকাশ হওয়ার পরে এটি পুনরুদ্ধার করা হবে।
ডগ

2
হাই @ ডগ : কেন হ্যালো ডলি মুছবেন? সহজ উত্তর: ক্লায়েন্ট এটি সেখানে চায় না। :)
মাইকচিন্কেল

উত্তর:


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.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()ফাইল অনুমতিগুলির কারণে বা সম্ভবত একটি প্লাগইন বর্তমানে সক্রিয় হওয়ার কারণে বা আপনাকে প্রথমে সমাধান করতে হবে এমন অন্য কোনও কারণে ব্যর্থ হয়ে যাবে তবে আমাদের ব্যবহারের ক্ষেত্রে হ্যালো ডলি লড়াই ছাড়াই চলে যায় away

সংগ্রহস্থল প্লাগইনগুলি ডাউনলোড, ইনস্টল এবং সক্রিয় করা হচ্ছে

আমার এখনই সংগ্রহশালা থেকে প্লাগইনগুলি ডাউনলোড করার দরকার নেই (আমি ভাবছিলাম এটি থাকলে খুব ভাল লাগবে) আমরা এই প্রয়োজনীয়তাটি স্লাইড করতে দেই এবং পরে এটি পুনরায় দেখতে পাচ্ছি।

আপনার প্লাগিনগুলি সক্রিয় করা হচ্ছে

পরবর্তীটি আমাদের নিজস্ব কাস্টম প্লাগইনগুলি সক্রিয় করছে। আমরা ধরে নিচ্ছি যে আমরা ইতিমধ্যে সেগুলি প্লাগইন ডিরেক্টরিতে আপলোড করেছি এবং এটি করার দরকার আমাদের এগুলি ওয়ার্ডপ্রেসের জন্য সক্রিয় করতে। ( দ্রষ্টব্য : এই কৌশলটি রিপোজিটরি প্লাগইনগুলি সক্রিয় করার জন্যও কাজ করবে, এটি কেবল প্রথমে ডাউনলোড এবং ইনস্টল করবে না))

আমরা ব্যবহার করব 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) : পরামিতি টেমপ্লেট এবং স্টাইলশীট । ভাল, কমপক্ষে এটিই প্যারামিটারগুলির নাম দেওয়া হয়েছে। অভিভাবক থিম এবং শিশু থিম শব্দগুলির সাথে আপনি আরও পরিচিত হতে পারেন ।

ধরে নিই যে আপনি ডিফল্ট টুয়েন্টি টেন থিমটি সহ একটি চাইল্ড থিম তৈরি করেছেন যা ওয়ার্ডপ্রেসকে মূল থিম হিসাবে দেখাবে এবং আপনি এটিকে "আমার কাস্টম থিম" বলেছেন এবং এটি /wp-content/themes/my-custom-themeডিরেক্টরিতে রেখেছেন, আপনি এই কলটি ব্যবহার করে আপনার থিমটি সক্রিয় করবেন:

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

তবে এটি যদি চাইল্ড থিম না হয়? এটি সহজ, কেবল ডিরেক্টরি স্লাগ / থিম শনাক্তকারী (/wp-content/themes উভয় প্যারামিটার হিসাবে এটিতে আপনার ডিরেক্টরি অন্তর্ভুক্ত করা সাব-ডাইরেক্টরির নাম ) পাস করুন । ধরে নিই যে আপনি ইয়ান ডি স্টুয়ার্ট দ্বারা থিম্যাটিক থিমটি সক্রিয় করতে চান আপনি যেমন কল করেছেন :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ফাইলের শিরোনামের "থিমের নাম:" বিভাগ থেকে আসে Fort ভাগ্যক্রমে 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
*/

"হ্যালো ওয়ার্ল্ড" পোস্ট মুছে ফেলা হচ্ছে

এরপরে আমরা "হ্যালো ওয়ার্ল্ড" পোস্টটি মুছতে চাই । আপনি দেখতে পেয়েছেন যে @ রার্স্ট আমাদের 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

@jjeaton - সংক্ষিপ্ত উত্তর: হ্যাঁ, কিন্তু ... । দীর্ঘ উত্তর: সপ্তাহ না হলে কয়েকদিন হতে চলেছে। আমি শেষবার এখানে লেখার পর থেকে আমি এই সমস্যাটিতে উল্লেখযোগ্য কাজ করেছি তবে আমার ক্লায়েন্ট একটি প্রকল্প সমাপ্ত করার জন্য চাপ দিচ্ছেন এবং আমি পিছনে আছি, সুতরাং ... আপনি যদি কিছুটা অপেক্ষা করতে পারেন তবে আমি যত তাড়াতাড়ি পারছি পোস্ট করব এটি লিখে নিখরচায় সময় পান বিটিডব্লিউ, কোন দিক থেকে আপনি সবচেয়ে বেশি আগ্রহী?
মাইকস্কিঙ্কেল

অবশ্যই, কোন তাড়াহুড়ো নেই। আমি ভাবছিলাম এই প্রশ্নটি সত্যই মূল্যবান হবে এবং তাই পুরো সমাধানটি দেখতে চেয়েছিলাম। আমি বেশ কয়েকটি ওয়ার্ডপ্রেস সাইট পরিচালনা করি এবং আমি সর্বদা তাদের উপর আমার পুনরাবৃত্তিমূলক রক্ষণাবেক্ষণ স্বয়ংক্রিয় করার উপায়গুলি খুঁজছি (প্লাগইন আপডেট, আপগ্রেড, ইত্যাদি) যাতে এর কিছু সত্যই মূল্যবান।
jjeaton

4

কাঙ্ক্ষিত পার্মালিঙ্কস সেট করুন

এই সপ্তাহে আমি একটি নতুন (দুর্দান্ত) থিম প্রকল্পটি এসেছি যা এইচটিএমএল 5 / সিএসএস 3 কার্যকারিতার উপর খুব বেশি কেন্দ্রীভূত হয়েছে যার কিছু বয়লারপ্লেট সামগ্রী তৈরি করতে, পারমালিঙ্ক সেটিংস অন্তর্ভুক্ত করতে, সাইট ইনস্টল করার জন্য কোনও আপেক্ষিক মূল নির্ধারণ ইত্যাদির নিজস্ব 'বুটস্ট্র্যাপ' স্ক্রিপ্ট রয়েছে These বৈশিষ্ট্যগুলি থিম অ্যাক্টিভেশন হিসাবে ডাকা হয়। প্রকল্পটিকে রুটস বলা হয় এবং কোডটি এখানে ডাউনলোড করা যায় ; আমি এই কোডের জন্য কোনও ক্রেডিট নিই না। এতে বলা হয়েছে, পারমালিঙ্ক স্ট্রাকচার হিসাবে স্বয়ংক্রিয়ভাবে সেট / বছর / পোস্টনামের কোড (এবং গ্লোবাল $ পেজনের জন্য নীচে অ্যাক্টিভেশন হুকগুলি এখানে ব্যাখ্যা করা হয়েছে: 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(); 


    }

?>


ওহ, এই প্রশ্নে কাজ চালিয়ে যাওয়ার পরিকল্পনা রয়েছে ... তবে অন্য অনেক পরিকল্পনা যেমন তাদের কাছে রয়েছে। :) আমি লক্ষ করতে চাই যে এখানে থিম পোস্ট না করে নন-শিক্ষামূলক বিস্তৃত তৃতীয় পক্ষের কোড স্নিপেটের সাথে লিঙ্ক করা ভাল। এই সাইটটি ব্যবহারকারীর অবদানগুলিকে সিসি-উইকি লাইসেন্সের আওতায় রাখে যাতে কোড প্রয়োগ করা হলে পরিস্থিতি ন্যূনতম এবং বিভ্রান্ত হয়।
র‌্যাস্ট

নিশ্চিতভাবেই, নিশ্চিতভাবেই। তবুও এখানে দুর্দান্ত অগ্রগতি রয়েছে। এটি আপনার পরামর্শের জন্য একটি দুর্দান্ত আহ্বান, আমি স্ট্যাক এক্সচেঞ্জের ব্লকটি প্রায় দু'এক সময় ঘুরেছি কিন্তু লাইসেন্সিংয়ের প্রভাব সম্পর্কে কখনই ভাবিনি। আমি আমার কোডটি নীচে সম্পাদনা করেছি এবং বাকি কোডগুলি আমার সরবরাহিত লিঙ্কগুলিতে সহজেই পাওয়া যায়।

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 );
}

হাই @ রর্স্ট : মন্তব্য করার জন্য ধন্যবাদ। আহ, আপনি সহজটি নিয়েছেন ... ;-) আমি কেবল ফিরে আসছিলাম oneটি লিখতে।
মাইকচিন্কেল

@ মাইকস্কিঙ্কেল আপনি এখনই কিছু লিখছেন না? ফলাফল নিয়ে এসে এটি ইতিমধ্যে সম্পন্ন হয়েছে তা খুঁজে পাওয়া মেনু কোডে (এটি ভীতিজনক) ডুবিয়ে দেওয়া কোনও অপচয় হবে। :)
বিরল

হাই @ রর্স্ট! তালিকা শেষে শুরু? (আগাম ধন্যবাদ।)
মাইকচিন্কেল

ঠিক আছে, আমি মেনুগুলি পরিচালনা করার চেষ্টা করব, তবে কোনও প্রতিশ্রুতি নেই। এই কোডটি ভিতরে জটিল (চোখের ক্যান্ডির দাম এবং ব্যবহারযোগ্যতা) তাই আমার দক্ষতা এটির মধ্যে রয়েছে বলে আমি আত্মবিশ্বাসী নই।
র‌্যাস্ট

আরে @ রার্স্ট - আমি সব কিছু কাজ করেছিলাম তবে আমার উত্তরটি শেষ করার আগে সম্ভবত এটি আরও 24 ঘন্টা বা তার বেশি হবে। আপনাকে কেবল এটি জানাতে চেয়েছিল যাতে আপনি এটি কাজে লাগানোর চেষ্টা করে নিজেকে হত্যা করেন নি। চেষ্টা করার জন্য ধন্যবাদ.
মাইকচিন্কেল

0

যদি আমি এটি ভালভাবে বুঝতে পারি তবে আপনি এটি অন্তঃসত্ত্বা ইনস্টলের জন্য চান - তবে আমি আশংকা করছি যে আপনার পদ্ধতি সম্পূর্ণ ভুল।

আরও ভাল, সহজ এবং মানসম্মত উপায় হ'ল ইনস্টল.এফপি তৈরি করা এবং এটি ডাব্লুপি-কনটেন্ট ফোল্ডারে রেখে দেওয়া - এটি ইনস্টলেশন চলাকালীন স্বয়ংক্রিয়ভাবে লোড হয়।

সেখানে আপনি আপনার নিজস্ব wp_install ফাংশন রাখতে পারেন (যেমন ওয়ার্ডপ্রেসের নিজস্ব ফাংশন যদি ব্যবহার করে ((ফাংশন_এক্সিস্ট))) যাতে আপনি সহজেই আপনার বিকল্পগুলি সেটআপ করতে পারেন, প্লাগইনগুলি সক্রিয় করতে পারবেন, প্রাথমিক পোস্টগুলি, বিভাগগুলি, ট্যাগগুলি, ব্যবহারকারীদের পূরণ করতে পারেন ...

দ্বিতীয় বিকল্পটি পরিস্থিতির জন্য হতে পারে, যেখানে আপনি অলরেডি বিদ্যমান WP সাফ করতে চান (উদাহরণস্বরূপ ডেমো সংস্করণের জন্য প্রতি ক্রোন ব্যবহার করে ৩০ মিনিট অন্তর সেট আপ) - আপনি ক) ডাটাবেসটি কাটাতে পারেন এবং উপরের পদ্ধতিটি ব্যবহার করতে পারেন, বা প্লাগইন তৈরি করতে পারেন যারা একই।


2
@ থমাস ক্যাপলার - আপনার উত্তরের জন্য ধন্যবাদ তবে আমি আলাদা হতে অনুরোধ করছি; আমার পদ্ধতির "সম্পূর্ণ ভুল" নয় প্রথমত, আমি যা আলোচনা করব তা হ'ল একই কোড যা আপনি ব্যবহার করবেন install.phpএবং দ্বিতীয়টি অন্যান্য ব্যবহারের ক্ষেত্রে রয়েছে যেখানে install.phpপ্রযোজ্য নয়। হ্যাঁ, install.phpএটির ব্যবহার রয়েছে তবে এটি বিশদটির যত্ন নেয় না বা প্যানেসিয়ার ক্ষেত্রেও আপনি এটি বোঝাচ্ছেন না।
মাইকচিন্কেল

0

এই ইনস্টল স্ক্রিপ্টটি একবার দেখুন। https://github.com/Pravdomil/WP-Quick-Install

আমি আপনার ধারণাগুলি এবং কিছু কোড নিই এবং আপনি সম্ভবত যা সন্ধান করছেন এমন কিছু তৈরি করি।

বৈশিষ্ট্যগুলি হ'ল সেটআপ ডাটাবেস, বিভিন্ন ভাষা, ব্যবহারকারী তৈরি করা, বেসিক সাইটের সেটিংস সেট করা, ডিফল্ট প্লাগইন এবং টেম্পলেটগুলি মুছুন, ইনস্টল করুন এবং প্লাগইন এবং থিমগুলি সক্রিয় করুন, ডিফল্ট অবতার, পারমলিংকস, স্ট্যাটিক ফ্রন্ট পৃষ্ঠা।

অবদান নিখরচায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.