পোস্ট সামগ্রী এবং গ্যালারী সংক্ষিপ্ত কোড বিভক্ত করার একটি উপায় আছে? কীভাবে বা কোথায় এটি স্থাপন করা হোক না কেন আমি আমার স্বাভাবিক সামগ্রীর বাইরে গ্যালারীটি প্রদর্শন করতে চাই। আমি শর্টকাড নিজেই পেতে এটি ব্যবহার করতে পারি:
if(has_shortcode(get_the_content(), 'gallery')){
$pattern = get_shortcode_regex();
preg_match("/$pattern/s", get_the_content(), $matches);
echo do_shortcode($matches[0]);
}
গ্যালারী শর্ট কোড প্রথম উদাহরণ না হলে এটি কাজ করে না। আমার বিষয়বস্তু এবং গ্যালারী সম্পূর্ণরূপে বিভক্ত করার কি কোনও উপায় আছে?
সম্পাদনা করুন: আমার কাছে একটি আধা-সমাধান রয়েছে তবে এটি দীর্ঘ পথ বেয়ে যেতে হবে বলে মনে হচ্ছে। এটি প্রথমে পোস্টের প্রথম শর্টকোডটি ধরে ফেলে (যা আমি কেবল "গ্যালারী" শর্টকোড চাই তাই এটি সংশোধন করা দরকার) এরপরে সামগ্রী থেকে সমস্ত শর্টকোড সরিয়ে দেয় (আবার আমি আসলে যা করতে চাই তা নয়)।
<?php if(has_shortcode(get_the_content(), 'gallery')) : ?>
<?php
$pattern = get_shortcode_regex();
preg_match("/$pattern/s", get_the_content(), $matches);
?>
<div id="content">
<?php echo strip_shortcodes(get_the_content()); ?>
</div>
<div id="gallery">
<?php echo do_shortcode($matches[0]); ?>
</div>
<?php endif; ?>
সম্পাদনা # 2 - ঠিক আছে, আমি কেবল পোস্টটিতে গ্যালারী শর্টকড পেতে সক্ষম হয়েছি। আমি গ্যালারী শর্টকোড ফর্মটি সরিয়ে ফেলতে একটি ফিল্টারও যুক্ত করেছি the_content()
- সমস্যাটি হ'ল এটি পোস্ট করার পরে শর্টকোডটি অপরিহার্যভাবে অপসারণ করা নয়, তবে এটি আমাকে "do_shortcode ()" চালানোর অনুমতি দেয় না
functions.php
function remove_gallery($content) {
global $post;
if($post->post_type == 'artcpt')
remove_shortcode('gallery', $content);
return $content;
}
add_filter( 'the_content', 'remove_gallery', 6);
লুপ
<?php preg_match('/\[gallery ids=[^\]]+\]/', get_the_content(), $matches); ?>
<div id="content">
<?php the_content(); ?>
</div>
<div id="gallery">
<?php echo do_shortcode($matches[0]); ?>
</div>
লুপ এটা আমার শর্ট কোড ফিরে আসবে দুবার (ঝ একটি পৃষ্ঠার নই, দুইবার কর্তিত হবে - তাই তার চলমান না do_shortcode ())। নিশ্চিত কেন।
the_content()
। ট্রিকিয়ার যদি ইতিমধ্যে এর মতো অনেকগুলি পৃষ্ঠা থাকে তবে।